有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中的逻辑十进制格式

在java中格式化小数时,我知道有一种方法

NumberFormat formatter = new DecimalFormat("#0.00");  

但如果你可能有以下价值观,这是行不通的:

0.0000054654654 or similar

那样的话你就可以

0.00

而更合乎逻辑的是,印刷是有意义的

0.0000054 (or maybe 0.0000055)

我想知道是否已经有了解决办法?或者我必须实现自定义格式化程序

可能有这样的例子

1.1->;1.100 0.00000011111->;0.000000111

你可以看到,我们不需要硬编码小数点后的位数,而是需要告诉第一位后的位数。。。(大致)


共 (1) 个答案

  1. # 1 楼答案

    NumberFormat formatter = new DecimalFormat("#0.00");  
    

    0的数量指定精度。 如果希望将0.000054654654格式化为0.000055,请使用: NumberFormat formatter=新的十进制格式(“0.000000”)

    如果预先未知的情况下需要精度,可使用以下方法:

    public static void main(String[] args) {
        double a = 0.0000054654654;
        BigDecimal bd = new BigDecimal(a);
        String answer = String.format("%."+3+"G", bd);
        System.out.println(answer);
    }