java - JDBC:jtds getString() 以科学记数法返回 double

标签 java jdbc jtds number-formatting

使用 jtds JDBC 驱动程序时,getString 有时会返回以科学记数法格式化的 double :

// metaData.getColumnType(0) == java.sql.Types.DOUBLE
String.format("%f", resultSet.getDouble(0)); // = 26150279.910000
resultSet.getString(0);  // = 2.615027991E7

对于某些值,它不会:

String.format("%f", resultSet.getDouble(0)); // = 624000.000000
resultSet.getString(0);  // = 624000.0

是否可以强制 getString 始终返回 %f 格式的 double ?

请不要说服我使用getDouble()。谢谢。

最佳答案

使用 getDouble 提取 double 值:

double num = resultSet.getDouble();

创建一个十进制格式化程序,指定要使用的模式。如果您不指定它,则使用默认的区域设置模式:

DecimalFormat df = new DecimalFormat(pattern);

获取格式化字符串

String formattedString = df.format(num);

享受你自己的字符串:)

如果您需要有关如何构建模式的帮助,请参阅文档:

http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

关于java - JDBC:jtds getString() 以科学记数法返回 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9114487/

相关文章:

java - 如何声明具有多个边界的类型类的对象

hadoop - SQOOP 可以使用自定义 libpath 吗?

java - 如何通过 JDBC 将垃圾字符插入 mysql 表

java - 在 Tomcat Web 应用程序中找不到 net.sourcefourge.jtds.jdbc.Driver

java - net.sourceforge.jtds.jdbc.Driver 中的 setAutoCommit() 是否存在 "set chained"的错误?

java - SerialVersionUID 未在 Servlet 中声明

java - 如何解决maven项目中两个同名bean的冲突?

database-connection - jTDS 连接 URL

java - 带有 setRollbackOnly 的 JMS 和 MDB

java - Android 中的 jdbc 问题 - 无法连接到数据库