我得到了一个意想不到的结果,我不知道为什么。在下面的Swift代码中,我在一个同时循环中减去双打,我希望结果总是x.55,因为我每次只减去5.00,但是在最后一次迭代中,结果是在小数后添加一堆额外的数字,我不知道为什么。
有人能给我指一下正确的方向吗?如果我希望结果总是精确到两位小数,我需要做什么不同的事情?
下面是示例代码:
var testValue1 = 5.00
var testValue2 = 15.55
while testValue2 >= testValue1 {
testValue2 = testValue2 - testValue1
println("testValue2: \(testValue2)")
}
下面是控制台输出: 测试值 2: 10.55 测试值 2: 5.55 测试值 2: 0.550000000000001
(我预计控制台输出为:10.55、5.55、0.55)
这是最终的解决方案:)
var testValue1 = 5.00
var testValue2 = 15.55
while testValue2 >= testValue1 {
testValue2 = testValue2 - testValue1
var s = NSString(format: "%0.2f", testValue2)
println("testValue2: \(s)")
}
托马斯·基利安让我知道如何实现我的逻辑,这值得称赞!