概述
将数值转为字符串,可用到如下方法
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 位小数,另外另种方案或多或少的有点问题
网友评论