在swift中使用预算应用。
基本上,有一个标签显示键盘textInput到currencyStyle并显示此数字($ 5.00),然后等待用户选择Debit或Withdraw。如果是借记,则数字附加到表格,但是当涉及到提款( - )时我就丢失了。
我想
将格式为货币的NSDecimalNumber转换为负数,以附加到tableView:String($ 5.00到 - $ 5.00)。
将NSDecimalNumber值转换为负数并添加到NSNumber数组,该数组存储要为可用余额计算的数字(5.50到-5.50)
对于我已经尝试过使用NSNumberFormatter negativePrefix和Apple文档中的一些其他属性都无济于事。甚至尝试创建负NSNumber值= -100.0,但应用程序在分割期间崩溃。
任何帮助将不胜感激。
答案 0 :(得分:2)
您可以覆盖-
运算符。例如:
prefix func -(number: NSDecimalNumber) -> NSDecimalNumber {
return number.decimalNumberByMultiplyingBy(NSDecimalNumber(mantissa: 1, exponent: 0, isNegative: true))
}
然后您可以这样使用:
let number = NSDecimalNumber(double: 5.00)
let negativeNumber = -number
答案 1 :(得分:1)
轻松否定NSDecimalNumber
在Swift中创建扩展名,如下所示:
extension NSDecimalNumber {
func negative() -> NSDecimalNumber {
return self.decimalNumberByMultiplyingBy(NSDecimalNumber(mantissa: 1, exponent: 0, isNegative: true));
}
}
然后你可以像这样否定你的NSDecimalNumber
:
yourNumber = yourNumber.negative()
答案 2 :(得分:1)
您也可以从零中减去自己的值并按以下方式返回:
extension NSDecimalNumber {
var negative: NSDecimalNumber {
return NSDecimalNumber(integer: 0).decimalNumberBySubtracting(self)
}
}
NSDecimalNumber(double: 15.6).negative // -15.6