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 Test