ios开发中有时我们需要把NSNumber
转化为NSString
类型,会出现转化不准确的现象.
比如后台定义了一个82.4,我们接收到数据,并转化为NSString
类型,结果会显示出82.99999.试过几次后发现是double
转化为NSNumber
的时候除了问题.
double
表示嘚字面值和其存储的值一般是不一样的转化为NSNumber
之后,有很大一些数字在NSNumber
的stringValue
上会出错。
可以是取NSString
的doubleValue
,然后再.2f保留两位小数进行构造字符串千万不能取floatValue
,floatValue
在大于15万的浮点数字就会出现不精确了 而doubleValue
在数十亿的范围内都是字面上精确的。
如果涉及到计算的问题需要把字符串轉化为NSDecimalNumber
对象,再转成字符串
下面附上一套格式化数字类型字符串的方法:
symbol 为空时返回字符串 prefix 正负符号的追加格式 suffix 单位符号的追加格式