499.28999999999996 -> 499.28 Как удалить десятичную точку без ее округления? - PullRequest
0 голосов
/ 26 декабря 2018

Если у вас есть код ниже,

Результат должен быть 499,28

Как удалить десятичную точку без ее округления?

var tmp:Double = 499.28999999999996
print(tmp.someFunction()) //-> 499.28 String

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Используйте Float80 для большей точности:

var tmp: Float80 = 499.28999999999996

let times100 = tmp * 100

let noFraction =  times100 - times100.truncatingRemainder(dividingBy: 1)

tmp = noFraction/100

print(tmp)   //499.28
0 голосов
/ 26 декабря 2018

Вы можете использовать функцию floor() с некоторым масштабированием для достижения желаемого результата:

var tmp:Double = 499.28999999999996
floor(tmp * 100) / 100 //returns 499.28
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...