答案 0 :(得分:0)
试试这个:
Math.round(number * 100.0) / 100.0;
如果您搜索,可以找到很多其他方法。
答案 1 :(得分:0)
使用Double构造函数,您可以将所有这些字符串转换为双精度数。
String someNumberString = "1.2E5";
Double dNum = new Double(someNumberString);
你可以这样做四舍五入:
double rounded = (Math.round(dNum * ROUND_TO_OFFSET) / ROUND_TO_OFFSET)
其中ROUND_TO_OFFSET
指定要舍入的数字。例如。 ROUND_TO_OFFSET= 100
向最接近的0.01舍入。但这有一个缺点。 Math.round返回一个long,所以如果你的dNum * ROUND_TO_OFFSET产生的数字大于或小于long可以容纳的数字,它将无法正常工作。
您可以使用DecimalFormat类将任何double格式化为漂亮,易读的格式。
DecimalFormat decimalFormat = new DecimalFormat("#,##0.#####");
String formattedDouble = decimalFormat.format(someDouble);
这使您可以轻松地将double值转换为如下所示的字符串: 1,234,567.89012
如果你需要更多的精度或大于Long.MAX_VALUE可以处理的数字,你应该检查java的BigDecimal类。
BigDecimal提供了自己的循环方法,允许您指定要舍入的内容。您仍然可以通过调用BigDecimal的doubleValue()
函数来使用DecimalFormat类。