使用jQuery将输入字段舍入到2个小数位

问题描述 投票:2回答:2

我使用下面的代码为CM的转换器做了一点英寸

$(function () {
    var $src = $('#inches'),
        $dst = $('#cms');
    $src.on('input', function () {
        $dst.val($src.val() * 2.54);
    });
});

#cms的值在英寸框中的按键上发生变化,但它可以留下很多小数,有没有办法阻止它显示超过2位小数或舍入到2位小数?

jquery input rounding
2个回答
1
投票

使用toFixed方法始终显示2个小数位。请注意,它会将结果四舍五入。我在这里使用parseFloat只是为了安全,但它不是必需的,因为乘以的数字是2.54,这已经是浮点数。但是在使用整数的情况下,您需要parseFloat始终显示尾随小数。

 $(function () {
    var $src = $('#inches'),
        $dst = $('#cms');
    $src.on('input', function () {
        $dst.val(parseFloat($src.val() * 2.54).toFixed(2));
    });
});

0
投票

将此函数添加到您的脚本:

function to2dp(foo) {
    var bar = (Math.round(foo * 100) / 100).toFixed(2);
    return bar;
}

...然后添加一个onKeyUp事件以使用新值调用它,例如:

$('#inches').keyup(function(e) {
    var foo=$(this).val();
    if(!IsNaN(foo)) {
        $('#cms').val(to2dp(parseFloat(foo) * 2.54));
    }
}

免责声明 - 我还没有尝试过 - 只是在我的头顶:$

© www.soinside.com 2019 - 2024. All rights reserved.