你如何缩短Java中的长十进制数?

时间:2014-04-06 08:58:08

标签: java double decimal

例如,我的号码是137.99999999999。 你如何格式化为一个小数位,如137.9?

另一个例子是4.7777777777到4.7

注意:我根本不想对数字进行舍入。我只是想把它截断到一个小数位。

2 个答案:

答案 0 :(得分:3)

如果您需要更多特殊方法来显示4.77为4.7而不是4.8(这是NumberFormat),请使用RoundingMode.DOWN

  NumberFormat format = NumberFormat.getInstance();
  format.setRoundingMode(RoundingMode.DOWN);
  format.setMaximumFractionDigits(2);
  System.out.println(format.format(4.7777));

输出为4.77

答案 1 :(得分:0)

您可以在此处找到精心解答的答案:Round a double to 2 decimal places

将它调整为1位小数,你就可以了。

或者,另一种截断为一个小数点的简单方法是:

String numberString = "137.99999999999";
int indexOfDecimal = numberString.indexOf('.');
Double truncatedNumber = new Double(numberString.subString(0,indexOfDecimal+2));