0

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

我有一个应用程序,可以进行计算。我为此使用花车。所有浮点数都可以正常工作,我将浮点值转换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,具有准确的精度。但是,当我将其转换为NSStringwith 时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. 我究竟做错了什么?

谢谢

4

1 回答 1

0

没关系。我只需要初始化 NSNumberFormatter。#失败时刻。

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

解决了这个问题。:)

于 2013-01-08T21:22:02.183 回答