Java 设置双精度到小数点后6位的格式
我想在不舍入的情况下将双精度值设置为6位精度 格式设置为小数点后6位后的预期值Java 设置双精度到小数点后6位的格式,java,precision,number-formatting,Java,Precision,Number Formatting,我想在不舍入的情况下将双精度值设置为6位精度 格式设置为小数点后6位后的预期值 20790123833965.960938 我试过使用十进制格式 DecimalFormat formatter = new DecimalFormat("#0.000000"); System.out.println(formatter.format(hashValue) ); 我得到了这个 20790123833965.960000 正如在评论中所说,为了保持数字的精确性,您需要: 输出: 20
20790123833965.960938
我试过使用十进制格式
DecimalFormat formatter = new DecimalFormat("#0.000000");
System.out.println(formatter.format(hashValue) );
我得到了这个
20790123833965.960000
正如在评论中所说,为了保持数字的精确性,您需要:
输出:
20790123833965.960938
使用此代码,它将工作
public class JavaFormatter {
public static void main(String args[]) {
BigDecimal hashValue = new BigDecimal("20790123833965.960938");
DecimalFormat formatter = new DecimalFormat("#.######");
System.out.println(formatter.format(hashValue));
}
}
结果是合理的,
double
只能提供15到16位十进制数字的精度。输入是什么?相关:要获得额外精度,请使用BigDecimal
:BigDecimal hashValue=new BigDecimal(“207901383965.960938123”)代码>然后它将产生预期的输出。有任何答案有用吗?如果没有,请告诉ud你还缺少什么,我们仍然在这里帮助你。如果是,请记住接受最有用的。谢谢。
public class JavaFormatter {
public static void main(String args[]) {
BigDecimal hashValue = new BigDecimal("20790123833965.960938");
DecimalFormat formatter = new DecimalFormat("#.######");
System.out.println(formatter.format(hashValue));
}
}