我存储浮点数在我的SQLite(通过核心数据)这样的:iPhone - 商店浮SQLite中通CoreData
unit.conversion = [NSNumber numberWithFloat:0.001];
当我看到SQLite数据库值0.0010000000474974513
unit.conversion是我的datamodel中的一个可选浮点数...
这是什么问题?
感谢
我存储浮点数在我的SQLite(通过核心数据)这样的:iPhone - 商店浮SQLite中通CoreData
unit.conversion = [NSNumber numberWithFloat:0.001];
当我看到SQLite数据库值0.0010000000474974513
unit.conversion是我的datamodel中的一个可选浮点数...
这是什么问题?
感谢
鉴于你所看到的事实是正确的(正如已经回答的)并且你对此不满意:你可以使用NSDecimalNumber。提供快速谷歌搜索:
NSDecimalNumber让你做小数运算怎么样金融机构会希望你做数学。 警告:因为所有的数学运算符都是消息,所以使用起来有点令人讨厌。
浮点数是不是(总是)精确作品 - 它们是近似值。
请参阅What Every Computer Scientist Should Know About Floating-Point Arithmetic的背景。
感谢您的解释,但我还需要一个解决方案 – ncohen 2010-09-21 22:56:20
0.001和你在数据库中的价值,大多数情况下,是相同的事情,因为上面的链接可能解释。作为一种解决方案,您会期望什么? – mrueg 2010-09-21 23:01:11
问题是,当我要做一些乘法运算时,我会得到具有奇怪值的浮点数... – ncohen 2010-09-21 23:12:53