所有专家
我在程序中使用double类型的变量执行一些逻辑操作。
当double型参数的值小于1,00,00,000时,一切正常。
但是当它的价值超过一千万卢比时,它会自动转换成指数形式,我却遇到了异常。

例如


  值10010001.25变为
  1.001000125E7


我希望该值采用常规形式。

有帮助吗??

谢谢
米希尔·帕雷克(Mihir Parekh)

最佳答案

我建议使用System.out.println(new BigDecimal(d))

以下是一些替代方案的比较:

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class Test {

    public static void main(String[] args) {
        double d = 10010001.125;

        // 10010001.125000 (lots of trailing zeroes)
        System.out.printf("%f%n", d);


        // 10010001.13 (perhaps not what you want)
        System.out.printf("%.2f%n", d);


        // 10010001.12 (not accurate in my opinion)
        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println(df.format(d));


        // 10010001.125 (all relevant digits, and no trailing zeroes)
        System.out.println(new BigDecimal(d));
    }
}

09-26 06:08