将整数转换为十进制到十进制

时间:2021-04-26 07:57:15

标签: java

我想写一个代码,即,如果输入的是整数,那么数字应该格式化为2位小数(即,如果我给出10,则返回10.00)。否则,如果我给出10.123。它返回相同的。如何验证字符串是否为十进制以及如何将整数转换为十进制?有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

BigDecimal 可以在其构造函数中使用 String。然后您需要做的就是确定一种格式,如 Joachim Sauer 中的 comment 提及,使用 DecimalFormat:

DecimalFormat format = new DecimalFormat();
format.setMinimumFractionDigits(2);
format.setMaximumFractionDigits(10);

System.out.println(format.format(new BigDecimal("9")));
System.out.println(format.format(new BigDecimal("9.1")));
System.out.println(format.format(new BigDecimal("9.00")));
System.out.println(format.format(new BigDecimal("9.123")));
System.out.println(format.format(new BigDecimal("9.123456")));

印刷品:

9.00
9.10
9.00
9.123
9.123456

答案 1 :(得分:0)

如果仅用于显示目的,只需像@JoachimSauer 建议的那样使用 DecimalFormat

final String number = "1.4";
try {
  Double numberObj = Double.valueOf(number);
  DecimalFormat format = new DecimalFormat("#0.00");
  System.out.println(format.format(numberObj));
 } catch (NumberFormatException e) {
  System.err.println("invalid number: " + e.getMessage());
}

要检查您的 String 是否为数字,您可以从您的字符串创建一个 Double 实例并捕获 NumberFormatExcpetion,如上所示。这在性能方面不是最好的做法,但我想这不是您的主要关注点...