2010-09-21 60 views
2

我存储浮点数在我的SQLite(通过核心数据)这样的:iPhone - 商店浮SQLite中通CoreData

unit.conversion = [NSNumber numberWithFloat:0.001];

当我看到SQLite数据库值0.0010000000474974513

unit.conversion是我的datamodel中的一个可选浮点数...

这是什么问题?

感谢

回答

1

鉴于你所看到的事实是正确的(正如已经回答的)并且你对此不满意:你可以使用NSDecimalNumber。提供快速谷歌搜索:

NSDecimalNumber让你做小数运算怎么样金融机构会希望你做数学。 警告:因为所有的数学运算符都是消息,所以使用起来有点令人讨厌。

5

浮点数是不是(总是)精确作品 - 它们是近似值。

请参阅What Every Computer Scientist Should Know About Floating-Point Arithmetic的背景。

+0

感谢您的解释,但我还需要一个解决方案 – ncohen 2010-09-21 22:56:20

+0

0.001和你在数据库中的价值,大多数情况下,是相同的事情,因为上面的链接可能解释。作为一种解决方案,您会期望什么? – mrueg 2010-09-21 23:01:11

+0

问题是,当我要做一些乘法运算时,我会得到具有奇怪值的浮点数... – ncohen 2010-09-21 23:12:53