提问人:Josiah 提问时间:1/9/2013 更新时间:1/9/2013 访问量:139
NS物质失去精确性?
NSFormatter losing percision?
问:
我意识到还有其他类似的问题,但我的问题似乎并不准确。这是交易。
我有一个应用程序,可以进行计算。我正在为此使用浮点数。所有浮点数都工作正常,我将浮点值转换为用于格式化的浮点数。NSNumber
NSNumberFormatter *numFormatter = [NSNumberFormatter alloc];
[numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numFormatter setMinimumFractionDigits:1];
[numFormatter setMaximumFractionDigits:5];
NSNumber *insulinRatio = [NSNumber numberWithFloat:insulinRatioCalc];
NSLog(@"Original Number = %@", insulinRatio);
我的胰岛素比具有准确的精度。但是,当我将其转换为 时,它会丢失所有十进制精度。NSNumber
NSString
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
谢谢
答:
0赞
Josiah
1/9/2013
#1
没关系。我只需要初始化NSNumberFormatter。#fail 时刻。
NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc]init];
解决了问题。:)
评论
1赞
aopsfan
1/9/2013
继续接受您自己的答案,以便用户可以看到此问题已得到解答。
0赞
Josiah
1/9/2013
完全。如果有人想添加一个更好的答案,解释为什么会这样,等等等等。那我应该接受那个。我不认为这个答案应该像有人投票支持的那样关闭。即使答案很明显,这仍然可能会有所帮助。
上一个:XNA 上的浮点精度
下一个:使用低精度MATLAB生成随机数
评论