后臺(tái)返回一個(gè)“17.9”金額的值,通常方法焙畔,“17.9”.doubleValue后掸读,結(jié)果變成了17.899999,乘以100后宏多,竟然得出1789儿惫,實(shí)際應(yīng)該是1790。
iOS提供的保留精度的方法是使用NSDecimalNumber伸但。這可以完美解決問題肾请。
如上例:
NSString *numb = @"17.9";//模擬后臺(tái)返回的數(shù)據(jù)
NSDecimalNumber *restMoney = [NSDecimalNumber decimalNumberWithString:numb];
//那么如果要完成乘以100的處理呢?
NSDecimalNumber *restMoneyMultiply = [restMoney decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:@"100"]];
NSLog(@"----%@---",restMoneyMultiply);
打印結(jié)果:
2021-12-01 10:08:23.450901+0800 Decimal[3999:77442] ----1790---
這樣就不用再擔(dān)心相乘后精度丟失了更胖。
如果有更好的方法铛铁,歡迎評(píng)論區(qū)留言