使用 jQuery 将输入字段四舍五入到小数点后两位

Round input field to 2 decimal places using jQuery

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

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

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

使用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));
    });
});

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

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));
    }
}

免责声明 - 我还没有尝试过 - 就在我的脑海中:$