Objective c NSFormatter失去洞察力?

Objective c NSFormatter失去洞察力?,objective-c,cocoa-touch,nsnumberformatter,precision,Objective C,Cocoa Touch,Nsnumberformatter,Precision,我意识到还有其他类似的问题,但我的问题似乎并不准确。事情是这样的 我有一个应用程序,可以进行计算。我用浮子来做这个。所有浮点值都可以正常工作,我将浮点值转换为一个NSNumber格式 NSNumberFormatter *numFormatter = [NSNumberFormatter alloc]; [numFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; [numFormatter setMinimumFrac

我意识到还有其他类似的问题,但我的问题似乎并不准确。事情是这样的

我有一个应用程序,可以进行计算。我用浮子来做这个。所有浮点值都可以正常工作,我将浮点值转换为一个
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,具有精确的精度。但是,当我使用
NSNumberFormatter
将其转换为
NSString
时,它会丢失所有十进制精度

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
转换为double,但是
NSNumber
在这里很好。它是
NSNumberFormatter
。我做错了什么


谢谢

别客气。我只需要初始化NSNumberFormatter#失败时刻

NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc]init]; 

解决了问题。:)

继续并接受你自己的答案,这样用户就可以看到这个问题已经得到了回答。如果有人想添加一个更好的答案来解释为什么会出现这种情况等等。那么我应该接受这个。我不认为这个答案应该被关闭,因为有人投了赞成票。即使答案很明显,这仍然是有帮助的。