四舍五入小数

Hen*_*Lee 1 decimal nsdecimalnumber swift3

NSDecimalNumber一种方法可以对数字进行四舍五入,IE

let handler = NSDecimalNumberHandler(roundingMode: .plain, scale: 2, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: false)

let example: NSDecimalNumber = 1.345
let rounded: NSDecimalNumber = example.rounding(accordingToBehavior: handler)
Run Code Online (Sandbox Code Playgroud)

现在我已经切换到Decimal,它似乎没有像NSDecimalNumber有的那样对数字进行四舍五入的方法。我应该将其投射到NSDecimalNumber并将其投射回以Decimal将其四舍五入,还是有更好、更优雅的方法来四舍五入 a Decimal

编辑:做了一个更好的例子

OOP*_*Per 7

Decimal在 Swift 3 中已经成为处理小数的简单而简洁的方法,但是如果你想控制某些舍入模式或舍入比例,你需要使用NSDecimal...函数。

基础职能

参见小数部分。

NSDecimalRound(_:_:_:_:)

var dexample: Decimal = 1.345
var drounded: Decimal = Decimal()
NSDecimalRound(&drounded, &dexample, 2, .plain)
print(drounded) //->1.35
Run Code Online (Sandbox Code Playgroud)