iOS NSNumber 转 NSString

2022-01-18  本文已影响0人  NapoleonY

概述

将数值转为字符串,可用到如下方法

NSNumberFormatter

maximumFractionDigits 决定小数点位数,默认是 3 位,最多显示 14 位

NSNumber *number = @(64.4);
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.maximumFractionDigits = 14;
NSString *bStr = [formatter stringFromNumber:number];

直接转字符串

NSNumber *number = @(64.4);
NSString *cStr = [NSString stringWithFormat:@"%@", number];

可能出现显示异常的问题。例如,显示 64.4,实测显示为 64.40000000000001,具体原因未知

NSDecimalNumber

NSNumber *number = @(64.1234567890123);
NSDecimalNumber *deci = [[NSDecimalNumber alloc] initWithDouble:number.doubleValue];
NSString *desStr = [deci stringValue];

小数点后 8 位以内是正常的;超过 8 位时最后几位会出问题:例如 64.1234567890123 会显示为64.12345678901229568

结论

NSNumberFormatter 是比较好的方法,最多显示 14 位小数,另外另种方案或多或少的有点问题

上一篇 下一篇

猜你喜欢

热点阅读