美文网首页
iOS NSNumber 转 NSString

iOS NSNumber 转 NSString

作者: NapoleonY | 来源:发表于2022-01-18 19:44 被阅读0次

概述

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

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 位小数,另外另种方案或多或少的有点问题

相关文章

网友评论

      本文标题:iOS NSNumber 转 NSString

      本文链接:https://www.haomeiwen.com/subject/xdokhrtx.html