我意识到还有其他类似的问题,但我的问题似乎并不准确。这是交易。
我有一个应用程序,可以进行计算。我为此使用花车。所有浮点数都可以正常工作,我将浮点值转换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
with 时NSNumberFormatter
,它会丢失所有小数精度。
NSString *numberAsString = [numFormatter stringFromNumber:insulinRatio];
NSLog(@"Number = %@", numberAsString);
我对这些最后日志的输出如下:
2013-01-08 16:12:27.944 MyApp[84062:c07] 原始编号 = 1.2 2013-01-08 16:12:27.944 MyApp[84062:c07] 编号 = 1
为什么我会失去这种精确度。我知道NSNumber
转换为双倍,但NSNumber
这里很好。它是NSNumberFormatter
. 我究竟做错了什么?
谢谢