499.28999999999996-> 499.28如何删除小数点而不四舍五入?

时间:2018-12-26 05:22:22

标签: swift

当您具有以下代码时,

结果应为499.28

如何在不舍入小数点的情况下删除小数点?

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

谢谢。

2 个答案:

答案 0 :(得分:2)

使用Float80可以提高精度:

var tmp: Float80 = 499.28999999999996

let times100 = tmp * 100

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

tmp = noFraction/100

print(tmp)   //499.28

答案 1 :(得分:1)

您可以通过一些缩放使用floor()函数来获得所需的结果:

var tmp:Double = 499.28999999999996
floor(tmp * 100) / 100 //returns 499.28