开发过程中遇到的问题,从服务器拿的数据NSString类型的,然后转化成CGFloat类型的,数据的值就不准确了,没办法,就找了下资料,找到了苹果有专门的API,针对金融货币单位,希望可以解决有遇到同样问题的人。
一、NSDecimalNumber的基本运算
NSDecimalNumber *decOneNum = [[NSDecimalNumber alloc] initWithFloat:oneNum];
NSDecimalNumber *decTwoNum = [[NSDecimalNumber alloc] initWithFloat:twoNum];
NSDecimalNumber *resultNum = [[NSDecimalNumber alloc] init];
/**
初始化方法参数介绍
roundingMode 舍入方式
(
NSRoundPlain, 四舍五入
NSRoundDown, 只舍不入
NSRoundUp, 只入不舍
NSRoundBankers 四舍六入, 中间值时, 取最近的,保持保留最后一位为偶数
)
scale 小数点后舍入值的位数。例如:2的话就代表保留小数点后2位小数
exact 精度错误处理;YES:如果出现错误将会引发异常,NO:忽略错误。
overflow 溢出错误处理;BOOL值意思同上
underflow 下溢错误处理;BOOL值意思同上
divideByZero 除以0的错误处理;BOOL值意思同上,不过YES的的时候会自动舍去末尾 的0。
NSDecimalNumberHandler对象
*/
NSDecimalNumberHandler *roundingBehavior = [N