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

使用$.each循环累加输入值时小数丢失问题及解决

解决表格输入框小数累加丢失的问题

我刚看完你的问题,这个小数累加丢失的坑我之前也踩过——核心原因就是本地化数值格式和JavaScript默认解析规则不兼容。

问题原因分析

你用了波兰本地化(pl-PL)来格式化输入框数值,这种格式下:

  • 小数分隔符是逗号(,)而不是JavaScript默认识别的点号(.)
  • 千位分隔会用空格(比如1 333,33)
    但JavaScript的parseFloat()只能识别点号作为小数分隔符,遇到逗号就会直接截断,只取前面的整数部分,这就是你累加时小数丢失的根本原因。

修正方案

基础修正版(替换逗号为点)

先把输入框值里的逗号替换成点,再用parseFloat解析:

var summaryNetto = 0; var summaryVat = 0; var summary = 0; 
$('#products > tbody > tr').each(function() { 
  summaryNetto += parseFloat($(this).find('input[name="singlePriceSummaryNetto"]').val().replace(',', '.')); 
  summaryVat += parseFloat($(this).find('input[name="singleVatSummary"]').val().replace(',', '.')); 
  summary += parseFloat($(this).find('input[name="singleSummaryBrutto"]').val().replace(',', '.')); 
}) 
console.log('summaryNetto: '+summaryNetto); 
console.log('summaryVat: '+summaryVat); 
console.log('summary: '+summary);

波兰本地化加强版(清除空格+替换逗号)

如果你的数值带有千位分隔的空格(比如1 333,33),需要先清除所有空格再替换逗号:

var summaryNetto = 0; var summaryVat = 0; var summary = 0; 
$('#products > tbody > tr').each(function() { 
  singlePriceSummaryNetto = $(this).find('input[name="singlePriceSummaryNetto"]').val().replace(/\s+/g, ''); 
  summaryNetto += parseFloat(singlePriceSummaryNetto.replace(',','.')); 
  singleVatSummary = $(this).find('input[name="singleVatSummary"]').val().replace(/\s+/g, ''); 
  summaryVat += parseFloat(singleVatSummary.replace(',', '.')); 
  singleSummaryBrutto = $(this).find('input[name="singleSummaryBrutto"]').val().replace(/\s+/g, ''); 
  summary += parseFloat(singleSummaryBrutto.replace(',', '.')); 
}) 
$('span#summaryNetto').empty(); 
$('span#summaryNetto').append(format(summaryNetto) + 'zł'); 
$('span#summaryVat').empty(); 
$('span#summaryVat').append(format(summaryVat) + 'zł'); 
$('span#summary').empty(); 
$('span#summary').append(format(summary) + 'zł');

额外说明

你的format函数用来展示本地化数值是完全没问题的,但计算时一定要把格式化后的字符串转成JavaScript能识别的标准浮点数格式——也就是替换逗号为点,清除多余空格,这样parseFloat才能正确解析小数部分,累加结果就不会丢失小数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 10:02:39