Нет, это не ошибка. Это просто стандартная проблема с внутренним представлением чисел.
Итак (по-быстрому):
var a = 0.15 + 0.15
var b = 0.1 + 0.2
print (a == b) // can be false!
print (a >= b) // can also be false!
var c = 80.138
print(c) // 80.138
print (c - 80.0 - 0.138) // 5.218048215738236e-15
Многие люди наблюдают за этим "странным" поведением практически на любом языке программирования. Просто проверьте некоторые веб-сайты, такие как stackoverflow.com:
странный вывод по сравнению с плавающей точкой с литералом float
или с красивыми изображениями:
https://bitbashing.io/comparing-floats.html