我意识到还有其他类似的问题,但我的问题似乎并没有准确地联系起来。这是交易。
我有一个应用程序,它做一个计算。我是用浮子来做这个的。所有浮点数都工作得很好,我将浮点数转换为NSNumber格式。
NSNumberFormatter *numFormatter = [NSNumberFormatter alloc];
[numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numFormatter setMinimumFractionDigits:1];
[numFormatter setMaximumFractionDigits:5];
NSNumber *insulinRatio = [NSNumber numberWithFloat:insulinRatioCalc];
NSLog(@"Original Number = %@", insulinRatio);我的NSNumber,insulinRatio,具有精确的精度。但是,当我将其转换为带有NSString的NSNumberFormatter时,它将失去所有十进制精度。
NSString *numberAsString = [numFormatter stringFromNumber:insulinRatio];
NSLog(@"Number = %@", numberAsString);我对最后这些日志的输出记录如下:
2013年-01-08 16:12:27.944 MyApp84062:c07原始号码= 1.2 2013年-01-08 16:12:27.944 MyApp84062:c07编号=1
为什么我会失去这种精确性。我知道NSNumber可以转换为double,但是NSNumber在这里很好。这是NSNumberFormatter。我做错了什么?
谢谢
发布于 2013-01-08 21:22:02
不要紧。我只需初始化NSNumberFormatter。#失败时刻。
NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc]init]; 解决了问题。:)
https://stackoverflow.com/questions/14224235
复制相似问题