准备好一个javascript,需要在数字结果中插入逗号



>我拼凑了一个脚本,该脚本接受一个变量,对其进行两次单独的数学计算,并在屏幕上显示两个答案。

当结果超过 1,000 时,我需要脚本在两个"生成"答案中放置逗号。(请注意,HTML 中显示的默认值已经有逗号。

但是,我不需要结果显示任何尾随小数点。

这是我的JavaScript和一些随附的HTML...

function return_selected(currentID) {
  var savings = document.getElementById(currentID);
  var valueCalc = savings.options[savings.selectedIndex].value;
  return valueCalc;
}
// computing potential at 3%
function firstCalc() {
  var calcPrice1 = return_selected('soldfor') * .03 - 595;
  document.getElementById('savings3').innerHTML = "$" + calcPrice1;
  return calcPrice1;
}
// computing potential at 6%
function secondCalc() {
  var calcPrice2 = return_selected('soldfor') * .06 - 595;
  document.getElementById('savings6').innerHTML = "$" + calcPrice2;
  return calcPrice2;
}
document.addEventListener("DOMContentLoaded", firstCalc);
document.addEventListener("DOMContentLoaded", secondCalc);
// should listen for all select option
document.addEventListener("change", firstCalc);
document.addEventListener("change", secondCalc);
<!--HTML Routine to DISPLAY COMPUTATIONS -->**
<div class="box">
  <div class="content">
    <p>Start with this number
      <select name="" id="soldfor">
            <option value="100000">$100,000</option>
            <option value="200000">$200,000</option>
            <option value="300000">$300,000</option>
            <option value="400000" selected>$400,000</option>
            <option value="450000">$450,000</option>
          </select>
    </p>Compute a new number <span id="savings3">$11,405</span>
    <p>
      <p>and compute another number
        <span id="savings6">$23,405</span>
  </div>
</div>

function addComma(val) {
    while (/(d+)(d{3})/.test(val.toString())) {
        val = val.toString().replace(/(d+)(d{3})/, '$1' + ',' + '$2');
    }
    return val;
}
var calcPrice1 = 100000 * .03 - 595;
document.getElementById('savings3').innerHTML = "$" + addComma(Math.trunc(calcPrice1));
var calcPrice2 = 100000 * .06 - 595;
document.getElementById('savings6').innerHTML = "$" + addComma(Math.trunc(calcPrice2));

它会为你工作。

可以使用Number.toLocaleString()根据区域设置约定设置数字格式。

var n1 = 1e5;
var n2 = 1e6;
console.log('n1:',n1.toLocaleString());
//=> n1: 100,000
console.log('n2:',n2.toLocaleString());
//=> n2: 1,000,000

请参阅 Number.prototype.toLocaleString(( @ MDN。

if (!Number.prototype.toMoney) {
    Number.prototype.toMoney = function () {                   
        return this.toString().replace(/B(?=(d{3})+(?!d))/g, ",");
    };
}
console.log((4500000.00).toMoney()); // 4,500,000

var format = function (n) {                   
  return n.toString().replace(/B(?=(d{3})+(?!d))/g, ",");
};
console.log(format(10500)); // 10,500

相关内容

  • 没有找到相关文章

最新更新