Javaの金銭タイプBigDecimal小数点を除いた後0
/*
Author:William( )
Create Time:2018-07-23*/
public class StringPlus {
/**
* 0
* Author:William( )
* Create Time:2018-07-25
*
* @param money
* @return
*/
public static BigDecimal removeAmtLastZero(BigDecimal money) {
String strMoney = money.toString();
if (strMoney.indexOf('.') != -1) {
String[] arr = strMoney.split("\\.");
String strDecimals = arr[1];
List list = new ArrayList();
boolean isCanAdd = false;
for (int i = strDecimals.length() - 1; i > -1; i--) {
String ss = String.valueOf(strDecimals.charAt(i));
if (!ss.equals("0")) {
isCanAdd = true;// , 0
}
if (!ss.equals("0") || isCanAdd) {
list.add(ss);
}
}
StringBuffer strZero = new StringBuffer();
for (int i = list.size() - 1; i > -1; i--) {
strZero.append(list.get(i));
}
strMoney = String.format("%s.%s", arr[0], strZero.toString());
}
return new BigDecimal(strMoney);
}
}
次の操作を行います.
BigDecimal a=new BigDecimal("0.00100000");
BigDecimal b=new BigDecimal("1.00000000");
BigDecimal c=new BigDecimal("10.06000000");
BigDecimal d=new BigDecimal("0.01000000");
BigDecimal e=new BigDecimal("1.01005000");
BigDecimal f=new BigDecimal("1.0105060000");
BigDecimal a1=StringPlus.removeAmtLastZero(a);
BigDecimal b1=StringPlus.removeAmtLastZero(b);
BigDecimal c1=StringPlus.removeAmtLastZero(c);
BigDecimal d1=StringPlus.removeAmtLastZero(d);
BigDecimal e1=StringPlus.removeAmtLastZero(e);
BigDecimal f1=StringPlus.removeAmtLastZero(f);
結果:
a1=0.001;
b1=1;
c1=10.06;
d1=0.01;
e1=1.01005;
f1=1.010506;