在Java中浮点数包括基本型float、double,以及对象包装类型的Float和Double,对于这些浮点数的输出,不管是显式地还是隐式地调用toString()得到它的表示字串,输出格式都是按照如下规则进行的:
如果绝对值大于0.001、小于10000000,那么就以常规的小数形式表示
如果在上述范围之外,则使用科学计数法表示。即类似于1.234E8的形式清楚这些,就可以避免一些问题,另外,对于大多数的企业应用,用户更倾向于使用普通的小数表示形式,而不是科学计数法的表示形式,所以,在实际项目中也经常会遇到需要把Java中浮点数默认的表示形式统一为普通小数形式输出的问题,可以使用java.text.DecimalFormat进行转换,比如,把double型的转换为保留4位小数点输出:DecimalFormat df = new DecimalFormat("#.0000");
double d = 12345678.12345;
String dStr = df.format(d);
这样dStr就变成了:1234567.1234,而不会是:1.234567812345E7 的形式了。