【发布时间】:2015-01-07 05:43:24
【问题描述】:
我有一个小数点后 7 位的字符串:@"-28.1234212"
我想将其转换为NSNumber 而不会丢失任何精度。当我执行以下操作时,我只得到 4 位小数。
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber* convertedNum = [f numberFromString:@"-28.1234212"];
现在convertNum 是-28.1234 而不是-28.1234212。
是否有可能做到这一点而不会丢失精度?
【问题讨论】:
-
你确定底层数字实际上已经失去了精度(而不是 NSNumber 只是打印到小数点后 4 位)?
-
我正在打印和检查调试。
-
请贴出您用来打印的代码。
-
NSLog(@"%@", convertNum);
-
另外你不需要使用
NSNumberFormatter。这应该可以代替:NSNumber *convertedNum = [NSNumber numberWithDouble:@"-28.1234212".doubleValue]