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的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript之解决数值精度丢失indexOfsplittoStringreplacenpm install mj-calculation --save
iOS - 处理计算精度要求很高的数据,floatValue,doubleValue等计算不精确问题
Java# Java易错知识点:replaceindexOf数值包装类判断相等数值精度问题字符串拼接字符串判空mapper查询结果处理