我正在尝试使用两位小数来舍入Double值:
var x = 0.68999999999999995 var roundX = round(x * 100.0)/ 100.0 println(roundX)//打印0.69
如果打印的值正确..但var值不是我预期的,继续0.68999999999999995
我需要Double值...不像其他StackOverflow答案的字符串:(
答案 0 :(得分:2)
像双打这样的浮点数没有多个小数位。它们以二进制形式存储值,并且不能精确表示类似.69的值。它只是计算机上二进制浮点的本质。
使用数字格式化程序,或使用字符串(格式:)作为@KRUKUSA建议
var x:Double = 0.68999999999999995
let stringWithTwoDecimals = String(format: "%.2f", x)
println(stringWithTwoDecimals)