NS物质失去精确性?

NSFormatter losing percision?

提问人:Josiah 提问时间:1/9/2013 更新时间:1/9/2013 访问量:139

问:

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

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

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

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

我的胰岛素比具有准确的精度。但是,当我将其转换为 时,它会丢失所有十进制精度。NSNumberNSStringNSNumberFormatter

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

为什么我会失去这种精确度。我知道这会转换为双倍,但这里很好。它是 .我做错了什么?NSNumberNSNumberNSNumberFormatter

谢谢

Objective-C Cocoa-Touch nsNumberFormatter 精度

评论


答:

0赞 Josiah 1/9/2013 #1

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

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

解决了问题。:)

评论

1赞 aopsfan 1/9/2013
继续接受您自己的答案,以便用户可以看到此问题已得到解答。
0赞 Josiah 1/9/2013
完全。如果有人想添加一个更好的答案,解释为什么会这样,等等等等。那我应该接受那个。我不认为这个答案应该像有人投票支持的那样关闭。即使答案很明显,这仍然可能会有所帮助。