Не можете быстро разделить два NSNumbers?

У меня есть два NSNumbers, которые я хочу разделить, но в последней строке кода я получаю сообщение об ошибке: «Невозможно вызвать '/' со списком аргументов типа '(@Ivalue NSNumber, @Ivalue NSNumber)'"

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

Кто-нибудь может мне с этим помочь??


person Mus Harlem    schedule 15.03.2015    source источник


Ответы (3)


NSNumber — это объект, который содержит значение, которое может быть получено как различные типы с помощью его свойств, таких как floatValue, integerValue и т. д. NSNumber

Таким образом, выполнение nsnumber1 / nsnumber2 было бы похоже на выполнение uiview1 / uiview2

person Arbitur    schedule 15.03.2015

Я предполагаю, что ваши number1 и number2 являются Float или Double, возьмите Float в качестве примера:

var caculated = firstnumber.floatValue / secondnumber.floatValue as NSNumber
person duan    schedule 15.03.2015

Если вам нужно выполнить деление на 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)
person Arasuvel    schedule 20.04.2016