想把金额 15.00 变成整数 15 ,且不影响 0.01 元的情况。(非银行)
故想到了一个公式: var res = parseInt( money * 100)*0.01
原理就是将金额及其小数部分,转成int类型,然后还原小数位。
这时问题出现了,当出现如 23.40 等金额时,最后结果是:23.400000000000002
var res = parseInt(23.4*100)*0.01;
// 结果是: 23.400000000000002
使用Java结果同。
DecimalFormat 格式化:(返回字符串)DecimalFormat format = new DecimalFormat("#.##");
System.out.println(df.format(23.40));
BigDecimal :(返回字符串)BigDecimal bd = new BigDecimal(String.valueOf(money));
return bd.stripTrailingZeros().toPlainString();
parseFloat 格式化:parseFloat('23.40'); //23.4
parseFloat('0.01'); //0.01
parseFloat('1.00'); //1
parseFloat(Number('23.40567').toFixed(2)); //23.41
by 2022-09-09 10:34:08