我得到了意想不到的结果,我无法弄清楚原因。在下面的Swift代码中,我在while循环中减去双精度,并且我期望结果始终为x.55,因为我每次只减去5.00,但在最后一次迭代中,结果是在之后添加了一堆额外的数字十进制,我无法弄清楚原因。
有人能指出我在正确的方向吗?如果我希望结果始终精确到两位小数,我需要做些什么呢?
以下是示例代码:
var testValue1 = 5.00
var testValue2 = 15.55
while testValue2 >= testValue1 {
testValue2 = testValue2 - testValue1
println("testValue2: \(testValue2)")
}
这是控制台输出: testValue2:10.55 testValue2:5.55 testValue2:0.550000000000001
(我希望控制台输出为:10.55,5.55,5.55)
答案 0 :(得分:1)
以下是最终解决方案:)
var testValue1 = 5.00
var testValue2 = 15.55
while testValue2 >= testValue1 {
testValue2 = testValue2 - testValue1
var s = NSString(format: "%0.2f", testValue2)
println("testValue2: \(s)")
}
感谢Thomas Kilian让我知道如何实现我的逻辑!