<form>
<label>Value:</label>
<input name="value" id="value" value="" placeholder="250000" type="number">
<br><br>
<label>Growth:</label>
<select name="growth" id="growth">
<option value=".05" selected="selected">0-5%</option>
<option value=".08">5-10%</option>
<option value=".10">10-20%</option>
<option value=".12">20+%</option>
</select>
</form>
<p id="total"></p>
$("#value,#growth").change(function () {
var number= $('#value').val();
var goal= $('#growth').val()*1;
if ( number >= 1 && number <=250000 ) {
var growth = goal + .02;
}
if ( number >= 250000 && number <=500000 ) {
var growth = goal + .01;
}
if ( number >= 500000 && number <=500000000 ) {
var growth = goal;
}
var total = number*growth;
$("#total").text(total);
});
我需要创建一个简单的计算器,该计算器将根据输入的不同变量将百分比乘以另一个字段中的值,并给出美元数字。我的一切工作都完全按照要求进行。但是,我希望将最终的“总计”数字转换为整数,并在适当的位置添加逗号。
示例:如果输入100,000作为值并且选择0-5%作为增长,则总输出为7000.00000001。我希望将此数字格式化为7,000。我查看了其他问题,但未找到对我要达到的目标的适当答复。我确实尝试在此处使用所选答案: Add comma to numbers every three digits
但是,它不能四舍五入为整数(或至少2个小数),并且会继续在小数点后添加逗号。这包括在下面的小提琴中。有没有简单的方法可以实现我要完成的任务?谢谢
这是我的小提琴的链接: https://jsfiddle.net/xpvt214o/522647/
答案 0 :(得分:3)
我添加了一个正则表达式函数并使用了JavaScript Math.Round函数。
以下是在jsfiddle中测试的工作示例:
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
$("#value,#growth").change(function () {
var number= $('#value').val();
var goal= $('#growth').val()*1;
if ( number >= 1 && number <=250000 ) {
var growth = goal + .02;
}
if ( number >= 250000 && number <=500000 ) {
var growth = goal + .01;
}
if ( number >= 500000 && number <=500000000 ) {
var growth = goal;
}
var total = number*growth;
total = Math.round(total);
//total = Number(total).toFixed(2);
$("#total").text(total);
$("#total").digits();
});
您想保留小数而不是整数,请使用('#total).toFixed(2);
而不是圆形。
只需提交round()行,并取消提交tofixed()行。
RegEX是通过此答案Add comma to numbers every three digits
提供的