錯(cuò)誤:(一串.899999999999)~
NSString *money = @"111";
Double moneyDou = money.doubleValue;
Double moneyDouChange = @(moneyDou).doubleValue;
# 99.899999999999 ~
解決:用NSDecimalNumber + NSString ~ (不要用number double float 進(jìn)行計(jì)算~)
# 轉(zhuǎn)化
NSString *money = @"111";
NSDecimalNumber *decimalNumber = [NSDecimalNumber decimalNumberWithString: money];
# 加
decimalNumber = [decimalNumber decimalNumberByAdding: decimalNumber];
# 減
decimalNumber = [decimalNumber decimalNumberBySubtracting: decimalNumber];
# 乘
decimalNumber = [decimalNumber decimalNumberByMultiplyingBy: decimalNumber];
# 除
decimalNumber = [decimalNumber decimalNumberByDividingBy: decimalNumber];
# 比較
NSOrderedSame(=) NSOrderedAscending(<) NSOrderedDescending(>)
[decimalNumber compare:self: decimalNumber]
# 顯示
NSLog(@"%@ 元", decimalNumber);
此文寫的很簡(jiǎn)潔---iOS中NSDecimalNumber使用
此文也很簡(jiǎn)潔---iOS高精度數(shù)值計(jì)算