CFNumberFormatterRoundingMode
? CFNumberFormatterRoundingMode
有很多case
kCFNumberFormatterRoundCeiling向正无穷大舍入。
kCFNumberFormatterRoundFloor向负无穷大舍入。
kCFNumberFormatterRoundDown朝零取整。
kCFNumberFormatterRoundUp从零开始舍入。
kCFNumberFormatterRoundHalfEven舍入到最接近的整数,或者 等距的话向偶数的方向移动。
kCFNumberFormatterRoundHalfDown舍入到最接近的整数,或者 等距则趋向于零。
kCFNumberFormatterRoundHalfUp舍入到最接近的整数,或者 等距则远离零。
我与Decimal
一起进行了NSDecimalRound(_:_:_:_:)
的计算。
NSDecimalRound(_:_:_:_:)
仅具有NSDecimalNumber.RoundingMode
的参数。
NSDecimalNumber.RoundingMode
有几个case
。
case plain将其舍入到最接近的可能返回值;当被抓到 在两个正数之间取整;当被夹在中间 两个负数四舍五入。
小写向下舍入返回值。
向上舍入返回值。
案例银行家四舍五入到最接近的可能的返回值;当中途 在两个可能性之间,返回最后一位为 甚至。
我可以在Swift中使用CFNumberFormatterRoundingMode吗?
除了NSDecimalRound(_:_:_:_:)
以外,还有其他选择吗?
答案 0 :(得分:1)
CFNumberFormatterRoundingMode
与CFNumberFormatter
一起使用。
使用NumberFormatter
并设置其具有相同选项的roundingMode
属性会更加方便。
您使用数字格式化程序使用特定的numberStyle
(例如十进制,货币,百分比等)将数字转换为字符串(反之亦然)。
答案 1 :(得分:0)
import Foundation
let f = NumberFormatter()
f.numberStyle = .decimal
f.maximumFractionDigits = 2
f.roundingMode = .down
f.string(from: Decimal(0.111) as NSNumber)
f.string(from: Decimal(-0.111) as NSNumber)
f.string(from: Decimal(0.116) as NSNumber)
f.string(from: Decimal(-0.116) as NSNumber)