Round avrundar fel

Databaser & SQL

3 svar · 247 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.

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)