如何将“ 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

07-25 21:35