Бля, а как так
https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D0%B4%D0%B2%D0%BE%D0%B9%D0%BD%D0%BE%D0%B9_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8
Так будет в большинстве языков потому что стандарт чисел с плавающей точкой везде один
Когда работаешь с числами с плавающей точкой нельзя использовать строгое сравнение это если коротко если длинно
http://www.binaryconvert.com/result_double.html?decimal=048046049
http://www.binaryconvert.com/result_double.html?decimal=048046050
http://www.binaryconvert.com/result_double.html?decimal=048046051
0.1 0.2 и 0.3 нельзя представить в двоичной системе точно следовательно происходит потеря точности но из за округления 0.1 и 0.2 округляются вверх
а 0.3 вниз поэтому и результат сравнения соответсвующий
1.00000000000000005551115123126E-1
2.00000000000000011102230246252E-1
2.99999999999999988897769753748E-1
0.1 + 0.2 > 0.3 почти во всех языках
вас же не смущает что 1/3 + 2/3 != 1 в конечных десятичных дробях ? так и тут мы имеем конечную двоичную дробь и когда переводим из системы отличной от двоичной дроби получаем погрешность
Igor
Omarov
Gottfrid Morgonstjärna Von Mörkhäst
Сидредин
SexNbaKef
Andrii
Vladimir
bookuxa
Anton
Дмитрий
Arsen
giorgio
Vyacheslav
Mikhail