如何将“ 3.416436417734133”舍入为“ 3.416436418”(点后的9个位置),但是如果我有“ 3.7578845854848E41”,则舍入为“ 3.7578845855E41”吗?
最佳答案
您可以使用DecimalFormat
,我不确定其他数字,但是当前您使用的数字在小数点前有一位数字。因此,请检查以下示例,在其中可以格式化双精度值。请注意,您可能还需要为用例更改格式模式。
例如 :
double d = 3.7578845854848E41;
double d2 = 3.416436417734133;
DecimalFormat f = new DecimalFormat("0.#########E0");
System.out.println(f.format(d));
System.out.println(f.format(d2));
输出:
3.757884585E41
3.416436418E0
//Replace E0 with space as format returns String
编辑:
由于您的默认语言环境。您可以像这样更改本地
//Change locale
DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(Locale.US);
DecimalFormat f = new DecimalFormat("0.#########E0", decimalFormatSymbols);
//And than use decimal format