Число 2.01, представленное в двоичном виде:
b10.00000010100011111100001010001111110000101000111111000010100011111100...
Компьютер использует только конечное число цифр для хранения значений с плавающей точкой, но двоичное представление 2.01 требует бесконечного числа цифр; в результате значение округляется до ближайшего представимого значения:
b10.000000101000111111000010100011111100001010001111110
В десятичном выражении это число равно:
2.0099999999999997868371792719699442386627197265625
Когда вы распечатываете, он округляется во второй раз до семнадцати десятичных цифр, давая:
2.0099999999999998