所有专家
我在程序中使用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));
}
}