【发布时间】:2017-09-07 12:22:55
【问题描述】:
使用subtracting() 方法从650.50 中减去5.0 时为什么会得到0?
在下面的代码中,加法、乘法和除法工作正常,但为什么减法不行?我做错了什么?
查看 IBM 沙箱中的代码: http://swift.sandbox.bluemix.net/#/repl/59b1387696a0602d6cb19201
import Foundation
let num1:NSDecimalNumber = 650.50
let num2:NSDecimalNumber = 5.0
let result = num1.adding(num2)
let result2 = num1.subtracting(num2)
let result3 = num1.multiplying(by: num2)
let result4 = num1.dividing(by: num2)
print("Addition: \(result)") // Addition: 655.5
// Why am I getting 0 here and not 645.5?
print("Subtraction: \(result2)") //Subtraction: 0
print("Multiplication: \(result3)") //Multiplication: 3252.5
print("Division: \(result4)") //Division: 130.1
苹果文档: https://developer.apple.com/documentation/foundation/nsdecimalnumber
【问题讨论】:
-
我在 XCode Swift Playground 中获得了“645.5”。可能是 IBM 部分的问题(比如说不是 iOS/macOS Swift 部分)。
-
嗯,这很奇怪。感谢您的检查(我现在不在电脑旁)。
-
试试
result2.doubleValue -
result2.doubleValue有效,但根据文档,它应该返回一个 NSDecimalNumber 而您不必这样做。谢谢。
标签: swift nsdecimalnumber