JS 四舍五入保留两位小数

Html 四舍五入保留两位小数:

Html:

<input type="number" step=".01" id="amount" name="amount" maxlength="100" value="<%=amount%>" onblur="formatDecimal(event)"/>

JS:

<script>

function formatDecimal(e) {
    var val = e.currentTarget.value;
    e.currentTarget.value = toDecimal2(val);
}

function toDecimal2(x) {
    k = 1/(10**(2+1));
    var f = Math.round(x*100+ k)/100;
    var s = f.toString();
    var rs = s.indexOf('.');
    if (rs < 0) {
        rs = s.length;
        s += '.';
    }
    while (s.length <= rs + 2) {
        s += '0';
    }
    return s;

</script>

 

 

注:Math.round()四舍五入时存在奇进偶舍的情况,即当舍入位前面一位是奇数时,就进,为偶数时,就舍。为了解决这个bug可以添加一个需要保留小数位后一位的小数来fixMath.round()四舍五入的bug。比如:保留两位小数是可以添加一个k = 1/(10**(2+1)),即0.001。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值