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