我试图阻止java double以科学记数法打印。我知道我可以使用DecimalFormat,但这会生成一个String。我怎样才能产生实际的双倍? 我试过了:
DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(8);
double n = Double.parseDouble(df.format(z));
然而,这仍然是科学记数法的两倍。
答案 0 :(得分:5)
格式不是double的属性,即数据类型。这只定义了一组值。
打印始终需要转换为String,因此DecimalFormat很好。
至于使用完全不同的小数部分组作为值,请参阅java.math.BigDecimal。这是“所有”小数部分的集合,具有动态的小数位数,操作和舍入控制。