【问题标题】:Android greenDAO Storing Floating point numbers wrongAndroid greenDAO 存储浮点数错误
【发布时间】:2014-03-23 23:06:22
【问题描述】:

大家好,我正在使用绿色 DAO 库来创建和操作数据库,并且我在数据库中有一些字段,例如

     Float total;

当我尝试插入值 25.4 时,它正在存储 25.4099998474121

之后,当我从数据库中检索数据时,我得到 25.4099998474121,最终我的所有计算都出错了

请帮助我摆脱困境

谢谢

【问题讨论】:

  • 你能显示一些代码吗?您似乎存储了 25.41

标签: android android-sqlite greendao


【解决方案1】:

在创建 Sqlite 表时,将浮点字段类型指定为小数(15,2)。这里 2 指定小数位数,15 表示允许的总位数。

我试过下面的代码,效果很好,

create table testing(numberField decimal(15,2))
insert into testing values(9999999999999.99)

但添加更多值会四舍五入。

在您的情况下,您需要插入,

insert into testing values(25.4)

这会将值作为 25.4 准确地插入到 sqlite 数据库中。如果这不起作用,那么您的程序正在分配额外的值或四舍五入。

【讨论】:

  • 我已经指定了相同的,但它在表格中添加了 19 位数字
  • @SoftwareSainath 我已经更新了答案并尝试在从数据库中检索时分配给 BigDecimal 而不是 Float。
猜你喜欢
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多