最近区块链项目中,要精确到小数点后任意位,在后台返回测试数据是"98541.29979999999" 是字符串类型;看到这个余额数当时就拿float 跟double去接,也用过NSString去接,但是需要做运算转的话精度会丢失,遇到精度问题,解决方法如下:
//冻结
NSDecimalNumber *freeze = [NSDecimalNumber decimalNumberWithString:[HZXUserInfo shareManager].freezeMoney];
//可用
NSDecimalNumber *av = [NSDecimalNumber decimalNumberWithString:[HZXUserInfo shareManager].userBalance];
// 总余额 = 冻结 + 可用
NSDecimalNumber *totalMoney=[freeze decimalNumberByAdding:av];
//显示
MoneyLB.text=[NSString stringWithFormat:@"%@",totalMoney.stringValue];
如果解决了您的问题,麻烦给个赞吧,谢谢!
---------------------------------------底线------------------------------------
网友评论