【发布时间】:2018-01-09 09:09:53
【问题描述】:
我确实尝试了不同的舍入到小数位的方法,它们都有相同的共同点。当我使用数字时,假设为 0.99999,我想将其四舍五入到小数点后 2 位。我的预期结果是 0.99,但我得到 1.00
我试过
let divisor = pow(10.0, Double(decimals))
let roundedVal = round(value * divisor) / divisor
也试过了
String(format:"%.2f",decimals)
还有
let behavior = NSDecimalNumberHandler(roundingMode: .plain, scale: decimals, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: true)
NSDecimalNumber(value: value).rounding(accordingToBehavior: behavior)
let roundedValue2 = NSDecimalNumber(value: 0.6849).rounding(accordingToBehavior: behavior)
所有方法都给我同样的问题。 有什么想法吗?
感谢您的帮助!
编辑: 这个想法是对于所有情况都可以四舍五入,但对于 0.9999 情况则不行。显示的数字总是很小(范围从 0.000 到 1),要显示的小数是参数,因此 0.348 应该是 0.35 而不是 0.34(中继时)
【问题讨论】:
标签: ios switch-statement rounding precision