![]() |
![]() ![]() |
![]() |
![]()
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? |
|
|
![]()
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 -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tego nie próbowałem. Pomogło sformatowanie cen przed rzutowaniem:
Kod $fStaraCena=floatval(number_format($fStaraCena, 2, '.', '')); Natomiast czemu tak jest to do jest pory nie wiem:( Ten post edytował bogoos 14.06.2007, 15:41:34 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 11:12 |