在NSDecimalNumber
中,有一种方法来舍入数字,I.E。
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)
现在我已切换到Decimal
并且它似乎没有像NSDecimalNumber
那样对数字进行舍入的方法。我应该将其投放到NSDecimalNumber
并将其投回Decimal
只是为了解决问题,还是有更好更优雅的方法来舍入Decimal
?
编辑:做了一个更好的例子
答案 0 :(得分:0)
这很简单
let x = 1.23556789
let y = Int(round(x))
print(y)
答案 1 :(得分:0)
Decimal
已成为处理Swift 3中十进制数的简单方法,但如果要控制某些舍入模式或舍入比例,则需要使用NSDecimal...
函数。
参见小数部分。
var dexample: Decimal = 1.345
var drounded: Decimal = Decimal()
NSDecimalRound(&drounded, &dexample, 2, .plain)
print(drounded) //->1.35