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

JS实现输入框与计算结果的千分位、小数分隔符(点、逗号)格式化

实现方案

你需要的是「千位分隔符为点、小数分隔符为逗号,固定保留2位小数」的数字格式,直接用JavaScript原生的Intl.NumberFormat国际化API就能实现,不需要复杂的正则处理,修改后的完整JS代码如下:

calculate = function() {
  // 先把输入值转为数字类型
  var peso = parseFloat(document.getElementById('peso').value);
  var altezza = parseFloat(document.getElementById('altezza').value);
  // 增加输入有效性校验,避免出现非数字结果
  if (isNaN(peso) || isNaN(altezza)) {
    alert('请输入有效的数值');
    return;
  }
  var bmruomo = peso * altezza;
  // 按要求格式化数字
  const formattedResult = new Intl.NumberFormat('de-DE', {
    minimumFractionDigits: 2,
    maximumFractionDigits: 2
  }).format(bmruomo);
  document.getElementById('bmruomo').value = formattedResult;
}
   
function resetFields(){
  var inputArray = document.querySelectorAll('input');
  inputArray.forEach(function (input){
    input.value = "";
  });
}

效果验证

  • 输入50和50计算,输出结果为2.500,00,符合需求
  • 输入52.5和52.5计算,输出结果为2.756,25,符合需求

补充说明

Intl.NumberFormat是JS原生提供的国际化数字格式化API,不需要引入任何第三方库:

  • 第一个参数de-DE是地区标识,德国地区的数字格式规则刚好是千位用点分隔、小数位用逗号分隔,匹配你的需求
  • 后面的配置项强制保留2位小数,避免出现小数位不足的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:06:08