webForumDet fria alternativet
Logga in / Bli medlem

Round avrundar fel

Databaser & SQL

3 svar · 238 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Trådstart#1

I ett fält har jag priset 67.634500000000003. När jag sen skriver ROUND(ProductPrice, 2) så avrundar den till 67.629999999999995.

Vad beror detta på och hur löser jag det?

Skriver jag bara SELECT ROUND(67.634500000000003, 2) så blir det rätt (67.630000000000000).

Medlem sedan maj 200010 687 inlägg
#2

Fältet är ett float fält by the way...

Medlem sedan maj 200010 687 inlägg
#3

Skriver jag:

SELECT ROUND(CONVERT(float, 67.634500000000003), 2)

Så funkar det inte heller. Tydligen så tycker inte ROUND och float om varandra... :(

Medlem sedan dec. 200012 464 inlägg
#4

Använd decimal i databasen i stället.

257 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)