将NSDecimalNumbers转换为负数

问题描述 投票:2回答:3

快速处理预算应用。

基本上,有一个标签,显示小键盘textInput到currencyStyle并显示该数字($ 5.00),然后等待用户选择借记或提款。如果是借方,则数字会附加到表中,但是当涉及Withdraw(-)时我迷路了。

我想

  1. 将NSDecimalNumber转换为负数格式,以便附加到tableView:字符串($ 5.00到-$ 5.00)。

  2. 将NSDecimalNumber值转换为负数,然后添加到NSNumber数组中,该数组存储要为可用余额(5.50至-5.50)计算的数字

对于这两者,我都尝试过使用NSNumberFormatter negativePrefix和Apple文档中的其他一些属性,但均无济于事。甚至尝试创建负的NSNumber值= -100.0,但应用在划分期间崩溃。

任何帮助将不胜感激。

swift ios8 nsnumberformatter nsdecimalnumber
3个回答
1
投票
extension NSDecimalNumber { func negative() -> NSDecimalNumber { return self.decimalNumberByMultiplyingBy(NSDecimalNumber(mantissa: 1, exponent: 0, isNegative: true)); } }

然后您可以像这样否定NSDecimalNumber

yourNumber = yourNumber.negative() 

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

2
投票
extension NSDecimalNumber { var negative: NSDecimalNumber { NSDecimalNumber.zero.subtracting(self) } }

NSDecimalNumber(value: 15.6).negative  // -15.6
© www.soinside.com 2019 - 2024. All rights reserved.