鉴于此数字:


150.00
150.26


我需要这样舍入:


如果小数部分的第二个值为零(0),则新值应为150.0
如果小数部分的第二个值不同于零(0),则新值将保留两个小数点,例如:150.26


有没有可以做到这一点的舍入方法?

谢谢。

我的代码在这里:

String monto = "150.10";//150.26
String nuevoMonto = "";
String[] valores = monto.split("\\.");
System.out.println("Valores : " + valores);
System.out.println("Valores length: " + valores.length);
for (int i = 0; i < valores.length; i++) {
  System.out.println("-->Valor: " + valores[i]);
}
if (valores.length == 2) {
  nuevoMonto = valores[1];
  System.out.println("Nuevomonto: " + nuevoMonto);
  if (nuevoMonto.length() == 2) {
    System.out.println("Dos posiciones decimales");
    System.out.println(nuevoMonto.indexOf("0"));
    if (nuevoMonto.indexOf("0") == 1) {
      nuevoMonto = valores[0] + "." + nuevoMonto.substring(0, 1);
    }
  }

}

System.out.println("Nuevo monto: " + nuevoMonto);

最佳答案

尝试这样的事情:

DecimalFormat decimalFormat = new DecimalFormat("#.0#");
System.out.println(decimalFormat.format(150.09));
System.out.println(decimalFormat.format(150.10));


新的十进制格式中的字符串允许修剪#,并且强制0保留

10-06 13:35