2

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

// 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- 格式的双打?

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

4

1 回答 1

4

使用 getDouble 提取双精度:

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

于 2012-02-02T15:22:31.520 回答