Swift 将小数转换为负数
在swift中开发预算应用程序 本质上,有一个标签显示键盘文本输入到currencyStyle,并显示这个数字($5.00),然后等待用户选择借记或取款。若借记,那个么数字会附加到表中,但当涉及到取款(-)时,我就不知所措了 我想Swift 将小数转换为负数,swift,ios8,nsnumberformatter,nsdecimalnumber,Swift,Ios8,Nsnumberformatter,Nsdecimalnumber,在swift中开发预算应用程序 本质上,有一个标签显示键盘文本输入到currencyStyle,并显示这个数字($5.00),然后等待用户选择借记或取款。若借记,那个么数字会附加到表中,但当涉及到取款(-)时,我就不知所措了 我想 将格式为货币的NSDecimalNumber转换为负数,以便附加到tableView:String($5.00到-$5.00) 将NSDecimalNumber值转换为负数,并添加到NSNumber数组中,该数组存储要计算的可用余额的数字(5.50到-5.50) 对于
任何帮助都将不胜感激 要轻松否定
NSDecimalNumber
在Swift中创建如下扩展名:
extension NSDecimalNumber {
func negative() -> NSDecimalNumber {
return self.decimalNumberByMultiplyingBy(NSDecimalNumber(mantissa: 1, exponent: 0, isNegative: true));
}
}
yourNumber = yourNumber.negative()
然后,您可以像这样对您的NSDecimalNumber
求反:
extension NSDecimalNumber {
func negative() -> NSDecimalNumber {
return self.decimalNumberByMultiplyingBy(NSDecimalNumber(mantissa: 1, exponent: 0, isNegative: true));
}
}
yourNumber = yourNumber.negative()
您还可以从零中减去它自己的值,并按如下方式返回:
extension NSDecimalNumber {
var negative: NSDecimalNumber { NSDecimalNumber.zero.subtracting(self) }
}
您可以重写
-
运算符。例如:
prefix func -(number: NSDecimalNumber) -> NSDecimalNumber {
return number.decimalNumberByMultiplyingBy(NSDecimalNumber(mantissa: 1, exponent: 0, isNegative: true))
}
然后,您可以这样使用:
let number = NSDecimalNumber(double: 5.00)
let negativeNumber = -number
检查这个问题:带尾数的小数在Swift中有效吗?在Xcode或Apple Swift文档中找不到它…您需要在Swift中像这样初始化-1
NSDecimalNumber
:NSDecimalNumber(尾数:1,指数:0,isNegative:true)才有意义!谢谢谢谢工作得很好!令人惊叹的!没有想过简单地修改-运算符!