繁体   English   中英

格式化双精度到小数点后6位

[英]Format a double to 6 decimal places precision

我想将double值格式化为6位精度而不进行舍入。

格式化为6位小数后的预期值

20790123833965.960938

我尝试过使用十进制格式

   DecimalFormat formatter = new DecimalFormat("#0.000000");
   System.out.println(formatter.format(hashValue) );

我得到了这个

20790123833965.960000

正如@Benoit在评论中已经说过,为了保持数字的完整精度,你需要一个BigDecimal

BigDecimal hashValue = new BigDecimal("20790123833965.960938");
DecimalFormat formatter = new DecimalFormat("#0.000000");
System.out.println(formatter.format(hashValue));

输出:

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));
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM