>我拼凑了一个脚本,该脚本接受一个变量,对其进行两次单独的数学计算,并在屏幕上显示两个答案。
当结果超过 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