代码之家  ›  专栏  ›  技术社区  ›  Nate

iPhone-通过CoreData在SQLite中存储浮动

  •  2
  • Nate  · 技术社区  · 14 年前

    我在SQLite中存储一个浮点数(通过核心数据),如下所示:

    unit.conversion = [NSNumber numberWithFloat:0.001];

    当我查看SQLite数据库时,值是0.0010000000474974513

    怎么了?

    谢谢

    2 回复  |  直到 13 年前
        1
  •  1
  •   Community CDub    8 年前

    考虑到你所看到的是正确的(正如已经回答的),而你对此并不满意:你可以使用NSDecimalNumber。谷歌提供了一个快速搜索:

    NSDecimalNumber允许您进行十进制运算,就像金融机构希望您进行数学运算一样。 警告 :由于所有数学运算符都是消息,因此使用它有点令人讨厌。

        2
  •  5
  •   martin clayton egrunin    14 年前

    浮点数不是(总是)精确的表示-它们是近似值。

    看到了吗 What Every Computer Scientist Should Know About Floating-Point Arithmetic 作为背景。