Swift числа с точкой
В playground получаю такой вывод:
let a = 0.3
let b = 0.2
let c = 0.00001
print(a + b) // 0.5
print(a - b) // 0.10000001
print(c) // 1e-05
Как избавиться от погрешности и получить привычный для калькулятора вывод?
print(a + b) // 0.5
print(a - b) // 0.1
print(c) // 0.00001
Ответы (1 шт):
Автор решения: schmidt9
→ Ссылка
Вместо Double в данном случае попробуйте использовать Decimal, так как Double не обеспечивает точного представления числа, подробнее ответ дан здесь.
let a = "0.3"
let b = "0.2"
let c = "0.00001"
print(Decimal(string: a)! + Decimal(string: b)!) // 0.5
print(Decimal(string: a)! - Decimal(string: b)!) // 0.1
print(Decimal(string: c)!) // 0.00001