![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Napotkałem dziwną rzecz w PHP ostatnio: Liczba 14,200,000 (14.2 miliona) mnożona przez 0.5 dawała w wyniku 7.1E + 6 Liczba 14,200,000 (14.2 miliona) dzielona przez 2 dawała w wyniku 7,100,000 Czy może mi ktoś powiedzieć skąd wynika ta "dziwna" forma liczby w pierwszym przypadku? I Czy da się pierwszy przypadek z mnożeniem tak przerobić by na końcu wychodziła liczba 7,100,000? Ten post edytował Skie 26.08.2008, 21:20:26 -------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 35 Dołączył: 5.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wszystko ukrywa się w formacie. Jak mnożysz przez 0.5 to zmieniasz int'a na float a jego wyświetlanie w pewnym zakresie jest inne. Przykład poniżej powinien to zobrazować.
Co do tego jak wrócić do normalnego zapisu to na przykład tak (przy założeniu że w mnożeniu nie wyjdą ci połówki):
lub przy użyciu funkcji number_format " title="Zobacz w manualu PHP" target="_manual lub innych podobnych. Proponuję też poczytać sobie o rodzajach zmiennych liczbowych, czasami się przydaje ![]() -------------------- Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 8 Dołączył: 2.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
N amoj gust bedzie tak :
W pierwszym przypadku wynik masz podany jako liczbe zmiennoprzecinkowa w notacji naukowej (bo masz liczbe calkowita razy liczbe zmiennoprzecinkowa, a wiec wynik tez jako zmiennoprzecinkowa). Drugi przypadek - dwie liczby calkowite a wiec wynik tez jako liczba calkowita. Jak zmienić: 1) echo (int)(14200000*0.5) - sposob raczej nieelegancki mowiac lagodnie 2) manual - sprintf |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 19:04 |