iOS - 数值精度处理之NSDecimalNumber

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - 数值精度处理之NSDecimalNumber相关的知识,希望对你有一定的参考价值。

参考技术A 首先NSDecimalNumber 继承自 NSNumber,所以自然拥有 NSNumber 的相关属性和方法,需要注意的是 NSNumber 继承自 NSValue 在复杂的数据处理的时候知道这些会快速解决问题。

通过NSDecimalNumber和NSDecimalNumberHandler的使用可以快速的对数据处理。

参数说明:
decimalNumberHandlerWithRoundingMode:对数据处理的方式
scale:小数点后几位

根据官方文档说明, 枚举值分析:
NSRoundPlain, 四舍五入
NSRoundDown, 只舍不入
NSRoundUp, 只入不舍
NSRoundBankers 四舍六入, 中间值时, 取最近的,保持保留最后一位为偶数

对数据四舍五入的封装:

参数说明:
price:要处理的值
position:四舍五入的小数点后几位
只需要改变decimalNumberHandlerWithRoundingMode的枚举就行了。

NSDecimalNumber 内部封装了 对数据处理的方法

例如:两个float类型的计算

其他算法类似。

比较完成之后会返回 NSComparisonResult 值,它是一个枚举类型

例如:

我对上面的方法进行了封装直接调用就好 地址:

这样我们对数据的处理就方便多了。

以上是关于iOS - 数值精度处理之NSDecimalNumber的主要内容,如果未能解决你的问题,请参考以下文章