如何在swift中舍入NSDecimalNumber?

Nal*_*aan 11 xcode nsdecimalnumber swift

我找不到任何资源,我一直在尝试各种各样的东西,但没有任何作用.

根据Apple的文档,你可以像这样围绕NSDecimalNumber:

NSDecimalNumber.decimalNumberByRoundingAccordingToBehavior(<#behavior: NSDecimalNumberBehaviors?#>)
Run Code Online (Sandbox Code Playgroud)

它接受一个NSDecimalNumberBehavior,我不确定如何操作,因为它(1)不能启动到变量并且它的属性已更改,并且(2)根据文档的roundingMode()方法不接受任何参数,但Xcode填写"自我"的参数空间.

我完全迷失了.回到基本问题; 如何在swift中舍入NSDecimalNumber?

提前致谢

Ark*_*kku 9

NSDecimalNumberBehaviors协议,因此无法实例化.您需要符合协议的的对象.Apple NSDecimalNumberHandler为此目的提供了类,例如:

let handler = NSDecimalNumberHandler(roundingMode: NSRoundingMode.RoundBankers, scale: 0, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: false)
let rounded = dec.decimalNumberByRoundingAccordingToBehavior(handler)
Run Code Online (Sandbox Code Playgroud)

scale参数是要小数,即数量,0四舍五入为整数.


Özg*_*sil 8

你可以这样做

let x = 5
let y = 2
let total = x.decimalNumberByDividingBy(y).decimalNumberByRoundingAccordingToBehavior( NSDecimalNumberHandler(roundingMode: NSRoundingMode.RoundUp, scale: 0, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: false))   
Run Code Online (Sandbox Code Playgroud)

  • 就像Swift中的字符串操作和其他东西一样,是否还有其他人为简单地执行此操作需要多少代码而烦恼? (2认同)