提问者:小点点

在一段时间循环中减去双倍,得到奇怪的结果[重复]


我得到了一个意想不到的结果,我不知道为什么。在下面的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)


共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)")
}

托马斯·基利安让我知道如何实现我的逻辑,这值得称赞!