You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中将数值格式化为保留两位小数?

实现计算结果保留两位小数的方案

针对你提供的选项转移计算代码,要实现小数保留两位,可通过以下几种方式修改,同时先修正原代码里的两个问题:

  1. 移除操作中误用parseInt会丢失小数部分,需统一换成parseFloat
  2. 移除操作里重复执行减法,且$(this).remove()后再取值会失效,需先缓存要移除的数值

方案一:使用toFixed(2)(推荐,自动补零+四舍五入)

toFixed(2)会将数值四舍五入后保留两位小数,返回字符串格式,刚好适配输入框的文本值需求,同时自动处理末尾补零(比如结果为3时会显示3.00)。

修改后的完整代码:

<script type="text/javascript">
$(document).ready(function() { 

    $('#btn-add').click(function(){
        $('#select-from option:selected').each( function() {
            $('#select-to').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
            // 处理初始值为空的情况,默认取0
            const currentTotal = parseFloat($("input[name='class']").val()) || 0;
            const addValue = parseFloat($(this).val());
            // 计算后保留两位小数
            $("input[name='class']").val((currentTotal + addValue).toFixed(2));
        });
    });

    $('#btn-remove').click(function(){
        $('#select-to option:selected').each( function() {
            // 先缓存要移除的数值,避免remove后无法获取
            const removeValue = parseFloat($(this).val());
            $('#select-from').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
            $(this).remove();
            
            const currentTotal = parseFloat($("input[name='class']").val()) || 0;
            const newTotal = currentTotal - removeValue;
            // 保留两位小数,若结果为负数可根据需求处理(比如设为0)
            $("input[name='class']").val(newTotal.toFixed(2));
        });
    });

});
</script>

方案二:使用Math.round手动控制(适合需数值运算场景)

如果后续需要对结果做数值运算,可先通过Math.round四舍五入,再转换为字符串,缺点是整数结果不会自动补零(比如3会显示3而不是3.00):

// 添加操作的计算行替换为
$("input[name='class']").val((Math.round((currentTotal + addValue) * 100) / 100).toString());

// 移除操作的计算行替换为
$("input[name='class']").val((Math.round(newTotal * 100) / 100).toString());

内容的提问来源于stack exchange,提问作者boufier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:17:13