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.