php odejmowanie, dziwne wyniki |
php odejmowanie, dziwne wyniki |
30.12.2013, 23:56:01
Post
#1
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 4 Dołączył: 3.01.2010 Ostrzeżenie: (0%) |
Więc mamy taki kod:)
lub taki:
Który daje wynik: 0.00099999999999989 niezależnie od serwera logiczne jest że wynik powinien być 0.001 zauważyłem że dzieje się tak tylko z małymi wynikami Pytanie brzmi: jaka jest przyczyna? Ten post edytował szajens 30.12.2013, 23:56:29 |
|
|
31.12.2013, 00:15:48
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
|
|
|
31.12.2013, 00:29:45
Post
#3
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 4 Dołączył: 3.01.2010 Ostrzeżenie: (0%) |
Wyczytałem że jest problem z liczeniem liczb zmiennoprzecinkowych przez komputer.
Jednak interesuje mnie jak wy to robicie, czy każdy wynik trzeba zaokrąglić funkcją round? Czy tak jest prawidłowo? |
|
|
31.12.2013, 00:51:45
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Z bardzo małymi czy z bardzo dużymi liczbami jest zawsze problem jeśli chodzi o precyzję, po prostu tak już jest.
Możesz użyć http://php.net/manual/pl/book.bc.php |
|
|
31.12.2013, 01:04:28
Post
#5
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) |
problem wyjaśniony jest na http://www.php.net/manual/en/language.types.float.php
najprostsze rozwiązanie to stosowanie http://www.php.net/manual/en/ref.bc.php lub zaokrąglanie wyniku funkcją round() -------------------- there is much to be learned
|
|
|
31.12.2013, 01:10:32
Post
#6
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 4 Dołączył: 3.01.2010 Ostrzeżenie: (0%) |
Koledzy Damonsson i irmidjusz, dziękuje za pomoc, właśnie takiej funkcji szukałem, przyda się na przyszłość.
|
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 13:05 |