发票联系表单脚本无法返回00.00格式总金额,.toFixed(2)使用异常求助
问题解决思路
你的问题根源在**parseInt**函数上——它是专门用来取整的,会直接丢弃输入值的小数部分。比如你输入0.6,parseInt(0.6)会返回0,不管累加多少个这类小数,总和都是整数,最后用.toFixed(2)自然只会显示.00的小数位。
修复方案
- 把代码里的
parseInt替换成parseFloat,这样就能正确识别并计算带小数的数值 - 给最终的总金额加上
.toFixed(2),强制保留两位小数格式
修改后的完整代码:
function findTotal(){ var arr = document.getElementsByName('qty'); var tot=0; for(var i=0;i<arr.length;i++){ // 用parseFloat解析数值,同时过滤无效输入 var num = parseFloat(arr[i].value); if(!isNaN(num)) tot += num; } // 格式化输出为00.00格式 document.getElementById('total').value = tot.toFixed(2); }
补充说明
- 新增
!isNaN(num)判断,避免用户输入空值或非数字内容时,总金额变成NaN(无效数字) .toFixed(2)会自动补零,比如总和是6时显示6.00,总和是0.6时显示0.60
内容的提问来源于stack exchange,提问作者dragonzladi
相关产品推荐
相关产品推荐

