概述
將數(shù)值轉(zhuǎn)為字符串硅蹦,可用到如下方法
NSNumberFormatter
maximumFractionDigits 決定小數(shù)點(diǎn)位數(shù)闷煤,默認(rèn)是 3 位,最多顯示 14 位
NSNumber *number = @(64.4);
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.maximumFractionDigits = 14;
NSString *bStr = [formatter stringFromNumber:number];
直接轉(zhuǎn)字符串
NSNumber *number = @(64.4);
NSString *cStr = [NSString stringWithFormat:@"%@", number];
可能出現(xiàn)顯示異常的問題假褪。例如近顷,顯示 64.4,實(shí)測(cè)顯示為 64.40000000000001幕庐,具體原因未知
NSDecimalNumber
NSNumber *number = @(64.1234567890123);
NSDecimalNumber *deci = [[NSDecimalNumber alloc] initWithDouble:number.doubleValue];
NSString *desStr = [deci stringValue];
小數(shù)點(diǎn)后 8 位以內(nèi)是正常的;超過 8 位時(shí)最后幾位會(huì)出問題:例如 64.1234567890123 會(huì)顯示為64.12345678901229568
結(jié)論
NSNumberFormatter 是比較好的方法瑟由,最多顯示 14 位小數(shù),另外另種方案或多或少的有點(diǎn)問題