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

时间:2017-06-19 00:58:04

标签: javascript jquery

我拼凑了一个带变量的脚本,对它进行两次单独的数学运算,并在屏幕上显示两个答案。

当结果超过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>

3 个答案:

答案 0 :(得分:0)

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));

它适用于你。

答案 1 :(得分:0)

您可以使用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

答案 2 :(得分:0)

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

OR

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

console.log(format(10500)); // 10,500