Ребята, я разочарован в компьютерах. Они не умеют считать
Первая проблема:
Почему происходит такая бесовщина, а точнее как это исправить:
Почему m = 1. 099999999999994 , а не 1.1? И почему n = 0.01000000000000001 , а не 0.01?
И в print’e ‘n’ отображается корректно, а ‘m’ без четверки в конце.
Вторая проблема:
var i = 0.0001
print(i) // пишет: “0.0001”
Теперь i = 0.00001
print(i) // пишет: “1e-05” ; Ооооокей, это я понять еще как-то могу понять. “05” - кол-во нулей перед единицей. Это типа оптимизация данных и т.д.
Тогда почему если i равно, к примеру, 0.00004000001 ,то “print(i)” выводит “4.000001e-05” - нули после четверки не кодирует, перед четверкой ставится запятая, короче после первой цифры отличной от нуля все остается неизменным (за исключением постфикса “e-05” в конце)
Я создаю калькулятор, и мне это ПРИНЦИПИАЛЬНО важно!
Буду безмерно благодарен, если покидаете статеек или объясните, почему и по какому принципу это происходит и как это исправить