napotkałem bardzo dziwny problem/błąd w PHP'ie ...

prosty rachunek:

5100*0.001 - zwraca poprawną wartość... 5.1, ale w chwili, kiedy przepuszczę go przez number_format z dokładnością do 18 miejsc po przecinku - pojawiają się schody ... zmniejszenie ilości miejsc po przecinku nie wchodzi w grę, gdyż faktycznie w powyższym rachunku mogą pojawić się wartości, których iloczynem będzie taka mała wartość...

pytanie, czy jest jakiś "fix" do tego babola, czy można zrobić coś, by owy problem się nie pojawiał?

  1. <?php
  2. echo number_format(5101*0.001,18);
  3. ?>


zwraca "5.100999999999999979" - sprawdzałem na kilku serwerach - wynik jest identyczny ...

i mam odpowiedź...

http://php.net.pl/manual/pl/language.types.float.php

temat zamknięty smile.gif