Autor Zpráva
loyza
Profil *
Mám tabulku:
CREATE TABLE test(cena FLOAT);
INSERT INTO test VALUES (1.2),(1.3),(1.5),(1.6);
Pokud ji normálně vypíšu, výstup bude normální:
select * from test;
1.2
1.3
1.5
1.6
Ovšem, pokud se pokusím vypsat hodnoty vynásobené deseti tak se dostanu k podivným výsledkům:
select oo*10 from test;
12.000000476837
12.999999523163
15
16.000000238419
Zkoušel jsem různé verse MySQL a všude se to chová stejně, jiný databázový stroj bohužel nemám možnost zkusit. Nevíte někdo kde jsem udělal chybu?? Proč mi to násobí tak podivně?
Díky za každou radu co zlepšit aby to násobilo správně.
thingwath
Profil
To není chyba MySQL, to je obecně důsledek toho jak počítače počítají (s reálnými čísly). Zaokrouhli nebo počítej jinak, co víc na to lze říct?
Jakub
Profil
Není problém právě v tom floatu? http://ilblog.sblog.cz/2006/05/15/299 (omlouvám se jestli jsem zcela vedle). Floatu jde nastavit na kolik desetinných míst má počítat, tak to zkus.

//zase pozdě...
Toto téma je uzamčeno. Odpověď nelze zaslat.