2010-09-21 34 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