MySQL select :)
Martin Sittek
martin.sittek na infoprojekt.cz
Čtvrtek Červen 27 13:27:41 CEST 2002
On 27.06.02, Novák Jiří wrote:
> Programator se nikdy! nepokousi porovnavat dve cisla s PLOVOUCI RADOVOU
> CARKOU, protoze dve stejna cisla NEMUSI byt stejne representovana v pameti.
> Lisi se pak nejakou setinkou na nejakem nevyznamnem miste, ale porovnani
> nesedi mozno pouzit tes abs(val1-val2)<0.0000001 atd.
>
> zvolte jiny datovy typ (pro penezni castky napr typ money ) nebo se
> porozhlidnete po SQL funkci ktera vysledek zaokrouhli (nebo zverstvo ->
> prevede na retezec a porovna)
>
> Stejne problemi jsou i na jinych SQL.
> na MS SQL je treba typ money - 64-bitovy int kde posledni 4 mista se berou
> jako desetinna
>
> pokud mate tech hodnot tak 10 000 skuste si je treba secist s ruzne
> nastavenym razenim a uvidite co dostanete
Tady bych si dovolil jeden skromný dotaz, o tomto _fenomenu_ :-) že
reálná čísla (například finanční) se ukládají v DB do typů money,
nebo numeric/deciaml vím poměrně dlouho a chápu i důvod proč se tak
činí. Ovšem nějak pořád nechápu, že když se s těmi čísly chce pracovat,
tak se stejně musí převést na nějaký reálný typ (float, double) a pak
se, podle mne, dostane clověk do stejného stavu jako by je uložil přímo
do typu real/double? Nebo se mýlím? Určitě se mýlím ale pořad nevím
v čem. Může mi to nekdo vysvětlit?
Dík
/Martin Sittek
Další informace o konferenci Databases