Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dziwne wyniki przy porównywaniu wartości zmiennych
bogoos
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 14.06.2007

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


Witam wszystkich
Mam taki kod:
Kod
$cena=floatval($cena);
$fStaraCena=floatval(mysql_result(mysql_query("SELECT products_price FROM products WHERE products_id = '".$id."'"),0,0));
echo "\$cena: ".$cena."<br />\$fStaraCena: ".$fStaraCena."<br />";
if ($cena==$fStaraCena) {echo "Cena bez zmian<br />";}
elseif ($cena>$fStaraCena) {echo "Cena wyższa<br />";}
elseif ($cena<$fStaraCena) {echo "Cena niższa<br/>";}
else {echo "Cos nie tak z cena<br />";};

i otrzymuję takie wyniki:
Cytat
$cena: 284.97
$fStaraCena: 284.97
Cena niższa

lub
Cytat
$cena: 1182.44
$fStaraCena: 1182.44
Cena bez zmian


Dziwne. Zaczałem szukać i zmodyfikowałem kod:
Kod
    $cena=floatval($cena);
    $fStaraCena=floatval(mysql_result(mysql_query("SELECT products_price FROM products WHERE products_id = '".$id."'"),0,0));
    echo "\$cena:".$cena."<br />\$fStaraCena:".$fStaraCena."<br />";
    $roznica=$cena-$fStaraCena;
    if ($roznica==0)
    {
        echo "Cena bez zmian: $roznica<br />";
    }
    elseif ($roznica>0)
    {
        echo "Cena wyższa: $roznica<br />";
    }
    elseif ($roznica<0)
    {
        echo "Cena niższa: $roznica<br/>";
    }
    else
    {
        echo "Cos nie tak z cena: $roznica<br />";
    };


Wyniki tym razem okazały się jeszcze ciekawsze:
Cytat
$cena:75.427
$fStaraCena:75.427
Cena niższa: -1.4210854715202E-014

oraz
Cytat
$cena:152.2185
$fStaraCena:152.2185
Cena bez zmian: 0

Czy ktoś ma jakiś pomysł co może być przyczyną takich wyników?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Faktycznie dziwne.
a spróbuj rzutować w ten sposób:
$zmienna = (float)$zmienna;

i porównywać za pomocą bccomp

Ten post edytował Darti 14.06.2007, 11:02:03
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: 7.10.2025 - 14:15