Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]array_sum i dziwne wyniki - niech ktoś na to spojrzy
Alikowski
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.10.2006

Ostrzeżenie: (0%)
-----


Witam, napisałem sobie kawałek kodu i przestałem wierzyć w swoje kilkunastoletnie doświadczenie z PHP. Niech ktoś na to spojrzy i napisze o co w tym biega:
  1. $tablica=array(0.32,0.32,1.46);
  2.  
  3. $suma=array_sum($tablica);
  4. $zmienna=2.1;
  5.  
  6. echo "array_sum=$suma<br>";
  7. echo "zmienna=$zmienna<br>";
  8. if ($suma==$zmienna){
  9. echo "zgodne";
  10. } else {
  11. echo "niezgodne ".$suma."<>".$zmienna;
  12. }


wynik sktyptu:
array_sum=2.1
zmienna=2.1
zgodne

a teraz najlepsze:
  1. $tablica=array(0.32,0.32,0.32,1.14);
  2. $suma=array_sum($tablica);
  3. $zmienna=2.1;
  4.  
  5. echo "array_sum=$suma<br>";
  6. echo "zmienna=$zmienna<br>";
  7. if ($suma==$zmienna){
  8. echo "zgodne";
  9. } else {
  10. echo "niezgodne ".$suma."<>".$zmienna;
  11. }


wynik skryptu:
array_sum=2.1
zmienna=2.1
niezgodne 2.1<>2.1


Być może jest już późno, ale raczej jeszcze mózg mi pracuje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pitu
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


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

Cytat
So never trust floating number results to the last digit, and do not compare floating point numbers directly for equality. If higher precision is necessary, the arbitrary precision math functions and gmp functions are available.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 03:27