Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 16.12.2009 Ostrzeżenie: (0%)
|
Witam,
ostatnio spotkałem się z dość dziwną sytuacją. Zrobiłem programik w PHP który zlicza mi pewne dane typu float z bazy mySQL. Operacje obliczeniowe wykonało samo zapytanie SQL-a. Problem pojawia mi się dopiero wtedy gdy zaczynam mnożyć przez siebie liczby które mają np jedno miejsce po przecinku, np. gdy pomnoże: 2*5,3 to wynik jest 10,6 ale gdy pomnoże 3*5,3 to wynik jest 15,8999999999999998 zauważyłem że jeśli pomnożył bym 5,3 razy wielokrotność liczby 3 to również będzie zwracalo jakieś głupoty. Przeciesz oczywiste jest że wynik powinien wyjść 15,9 a nie 15,899999998 Skąd te błędy? Zauważyłem również, że w javascript gdy mnoże dwie wartości z pól edit przez siebie to sytuacja jest identyczna. Dla przykładu podam jeszcze, że np 3*5,4 = 16.200000000000003 - a nie jak powinno być 16,2. Skąd się biorą te błędy i jak je wyeliminować? z góry dzięki za odpowiedzi. |
|
|
|
memic Problem z mnożeniem typów float - z pozoru proste 16.12.2009, 23:41:36
darko w php wyeliminujesz poprzez zaokrąglenie
w js też
... 16.12.2009, 23:54:01
skowron-line @darko w JS to lepiej toFixed( param ); 17.12.2009, 00:04:46
nmts Cytatjak je wyeliminować?
Może zamiana na typ dou... 17.12.2009, 00:15:53
memic Tak właśnie mam teraz zrobione, tzn. zmieniłem wsz... 17.12.2009, 00:24:40
Zyx Nie da się tego wyeliminować. Jak niby wyobrażasz ... 17.12.2009, 08:59:04
wookieb Można wyeliminować.
http://pl.php.net/manual/en/b... 17.12.2009, 10:21:40
thek Jak wspomniano, wynika to z niedoskonałości zapisu... 17.12.2009, 12:40:56 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 13:01 |