不能在 swift 中划分两个 NSNumbers?

Cannot divide two NSNumbers in swift?

我有两个 NSNumbers 我想划分,但在代码的最后一行我得到错误:"Cannot invoke '/' with an argument list of type '(@Ivalue NSNumber,@Ivalue NSNumber)'"

var firstnumber: NSNumber = object["numberone"] as NSNumber
var secondnumber: NSNumber = object["numbertwo"] as NSNumber
var calculated: NSNumber = firstnumber / secondnumber

谁能帮我解决这个问题?

我猜你的 number1 和 number2 是 Fl​​oat 或 Double,以 Float 为例:

var caculated = firstnumber.floatValue / secondnumber.floatValue as NSNumber

NSNumber 是一个对象,它包含一个值,可以通过使用其属性(例如 floatValueintegerValue 等)将其作为不同类型检索。 NSNumber

所以 nsnumber1 / nsnumber2 就像 uiview1 / uiview2

如果您需要对 NSNumber 执行除法,您需要使用 NSDecimalNumber

所以需要按如下方式进行除法:

let object = ["numberone" : "33", "numbertwo" : "33"]
var firstnumber: NSDecimalNumber =  NSDecimalNumber(string: object["numberone"])
var secondnumber: NSDecimalNumber =  NSDecimalNumber(string: object["numbertwo"])
var calculated: NSDecimalNumber = firstnumber.decimalNumberByDividingBy(secondnumber)