使用 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/