【问题标题】:Java+sqlite REAL field to StringJava+sqlite REAL 字段转字符串
【发布时间】:2010-11-22 18:51:21
【问题描述】:

我使用 SQLiteJDBC 将 Sqlite 与 Java 一起使用。在查询 sqlite 时,我发现这两个返回不同的东西:

String str = result.getDouble("field_name").toString();
String str = result.getString("field_name");

后者隐式将 sqlite 中 REAL 数的数字四舍五入,并将其转换为 String。前者不做总结的事情。 这是sqlite JDBC实现的bug还是SQL查询中的常识?

【问题讨论】:

  • 顺便说一句,REAL number 是什么意思?在最终转换为字符串之前是否已转换为整数?
  • sqlite 的数据类型不是类型安全的,不符合 sql 标准。这是故意的,因为这是一个 lite 数据库。
  • @Adeel Ansari:REAL 是 SQLite 的一种数据类型,没有 DOUBLE 或 FLOAT。

标签: java sqlite


【解决方案1】:

不,这绝对不是错误。前者调用Double 类的toString() 方法。而在后一种情况下,SQLLite 实现是有效的。

【讨论】:

  • +1:SQLite 和 Java 有不同的代码来进行 IEEE 双精度浮点数和字符串之间的转换,这是一个非常难以正确操作的操作。
  • 谢谢。所以是 JDBC 的 SQLite 实现将 REAL 值修剪成一个字符串,对吧?
猜你喜欢
  • 2012-07-29
  • 2011-06-16
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 2016-04-21
  • 1970-01-01
  • 2023-03-17
  • 2013-01-29
相关资源
最近更新 更多