去除小数点后面多余的0,这个小需求大家平时肯定也会遇到,总结了以下两种方法:(推荐方法二)
一、方法一(通过正则匹配去除)
/**
* 正则去除.或多余的0
*
* @param num 需要去除的参数
*/
public static String removeZeros(String num) {
if (num.indexOf(".") > 0) {
// 去掉多余的0
num = num.replaceAll("0+?$", "");
// 如果最后一位是. 则去掉
num = num.replaceAll("[.]$", "");
}
return num;
}
结果:
二、方法二(强烈推荐)
public static void main(String[] args) {
BigDecimal a = new BigDecimal("123.56246500");
String s = a.stripTrailingZeros().toPlainString();
System.out.println(s);
}
结果:
toPlainString():返回不带指数字段的此 BigDecimal 的字符串表示形式;
stripTrailingZeros():返回一个BigDecimal,它在数值上等于这一个,但表示形式移除所有尾部零 。
三、方法三(通过MySQL处理)
原数据:
SELECT
0 + CAST( s.salary AS CHAR ) AS salary
FROM
salary s
结果:
说明:0+用来隐式转换 ,让数据库自动转换值。