舍入功能无法按预期工作

时间:2015-06-23 19:32:58

标签: ios iphone xcode swift rounding

我正在尝试使用两位小数来舍入Double值:

var x = 0.68999999999999995    var roundX = round(x * 100.0)/ 100.0    println(roundX)//打印0.69

如果打印的值正确..但var值不是我预期的,继续0.68999999999999995

enter image description here

我需要Double值...不像其他StackOverflow答案的字符串:(

1 个答案:

答案 0 :(得分:2)

像双打这样的浮点数没有多个小数位。它们以二进制形式存储值,并且不能精确表示类似.69的值。它只是计算机上二进制浮点的本质。

使用数字格式化程序,或使用字符串(格式:)作为@KRUKUSA建议

var x:Double = 0.68999999999999995
let stringWithTwoDecimals = String(format: "%.2f", x)
println(stringWithTwoDecimals)