NSFormatter失去精度?

时间:2013-01-08 21:20:08

标签: objective-c cocoa-touch nsnumberformatter precision

我意识到还有其他这样的问题,但我的问题似乎没有准确关联。这是交易。

我有一个应用程序,可以进行计算。我正在使用花车。所有浮点数都可以正常工作,我将浮点值转换为NSNumber进行格式化。

NSNumberFormatter *numFormatter = [NSNumberFormatter alloc];
    [numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [numFormatter setMinimumFractionDigits:1];
    [numFormatter setMaximumFractionDigits:5];

    NSNumber *insulinRatio = [NSNumber numberWithFloat:insulinRatioCalc];
    NSLog(@"Original Number = %@", insulinRatio);

my NSNumber,insulinRatio,具有准确的精确度。但是,当我将其转换为带有NSString的{​​{1}}时,它会丢失所有小数精度。

NSNumberFormatter

这些最后日志的输出如下:

  

2013-01-08 16:12:27.944 MyApp [84062:c07]原始数字= 1.2   2013-01-08 16:12:27.944 MyApp [84062:c07] Number = 1

为什么我会失去这种精确度。我知道NSString *numberAsString = [numFormatter stringFromNumber:insulinRatio]; NSLog(@"Number = %@", numberAsString); 转换为加倍,但NSNumber在这里很好。这是NSNumber。我究竟做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

没关系。我只需要初始化NSNumberFormatter。 #fail moment。

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

解决了这个问题。 :)