Qued Posted November 16, 2006 Report Share Posted November 16, 2006 (edited) Dots kods: $f=(double)5.02; $i=(int) ($f*100); Jautājums: kāda būs $i vērtība? Jautājums divi: kāpēc? :) Edited November 16, 2006 by Qued Link to comment Share on other sites More sharing options...
Blitz Posted November 16, 2006 Report Share Posted November 16, 2006 baigi interesanti. Man lidz sim likas ka konvertejot uz int vins atmet mantisas (vai kaa tur) dalju, un saglabaa tikai veselo dalu. tobish: $f*100=502.0000000 (502 veselaa dalja) int ($f*100)=502 Link to comment Share on other sites More sharing options...
Qued Posted November 16, 2006 Author Report Share Posted November 16, 2006 baigi interesanti. Man lidz sim likas ka konvertejot uz int vins atmet mantisas (vai kaa tur) dalju, un saglabaa tikai veselo dalu. Nu tā jau arī ir, ka atmet to, kas aiz komata. Bet rezultāts nav 502 :) Link to comment Share on other sites More sharing options...
Delfins Posted November 16, 2006 Report Share Posted November 16, 2006 number_format($value,0); Link to comment Share on other sites More sharing options...
Qued Posted November 16, 2006 Author Report Share Posted November 16, 2006 number_format($value,0); Nu un? A vot pasaki, kāpēc piemēram tāds rezultāts? Link to comment Share on other sites More sharing options...
Delfins Posted November 16, 2006 Report Share Posted November 16, 2006 (edited) `known issue`... PHP labāk nekastot. MySQL/JS liekas tādas pašas problēmas. Starp citu, šāds topiks jau bija šeit, ja nemaldos. Edited November 16, 2006 by Delfins Link to comment Share on other sites More sharing options...
bubu Posted November 16, 2006 Report Share Posted November 16, 2006 Tas ir ļoti normāli, ka tur ir 501. Floating points NAV precīzs datu tips. Jau kuro reizi iespamošu šo linku: http://docs.sun.com/source/806-3568/ncg_goldberg.html Tur viss ir skaidri aprakstīts. Link to comment Share on other sites More sharing options...
Qued Posted November 16, 2006 Author Report Share Posted November 16, 2006 Tas ir ļoti normāli, ka tur ir 501. Floating points NAV precīzs datu tips. Jau kuro reizi iespamošu šo linku: http://docs.sun.com/source/806-3568/ncg_goldberg.htmlTur viss ir skaidri aprakstīts. O, paldies. Jā, šitā problēma ir arī citās vidēs. MsSQL, piemēram. Link to comment Share on other sites More sharing options...
bubu Posted November 16, 2006 Report Share Posted November 16, 2006 Problēma nav vidēs, bet gan floating pointa reprezentācijā datorā kā tādā vispār! Vienīgais ko kautkāda vide var nodrošināt - noapaļot skaitļus 501.9999999 pirms konvertēt uz integeri (un citus tamlīdzīgus gadījumus). Tb visādus "hakus" sataisīt tādējādi izliekoties, ka visu konvērtē un rēķina "pareizi". Link to comment Share on other sites More sharing options...
Recommended Posts