![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak bywa gdy operuje się na liczbach rzeczywistych
if(((int)$i) == 3){ -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jest to jakiś krok do przodu, ale teraz dla i= 3, 3.1, .. , 3.9 jest spełnione. A mi zależy, żeby tylko dla i=3 było spełnione.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@nospor Rzutowanie w ten sposób nie zadziała, albo raczej zadziała zbyt dobrze, bo dla 3.1, 3.2 itd. również. Problemem jest precyzja liczb zmiennoprzecinkowych, a rozwiązaniem może być funkcja number_format():
Rzutowanie w drugą stronę również nie przyniesie rezultatu, bo z (float) 3 otrzymamy po prostu 3. Natomiast od naszego $i będzie się to różnić na 15 miejscu po przecinku. Operacje na liczbach zmiennoprzecinkowych zawsze są obarczone błędem precyzji. Ten post edytował mortus 30.08.2011, 14:39:18 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 28.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki: +1 pomógł dla Ciebie.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Liczb zmiennoprzecinkowych nigdy nie powinno się porównywać operatorem równości (==). Liczby te operują na przybliżeniach, a nie precyzyjnych wartościach. Do poczytania Comparing floating point numbers.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 5 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:19 |