JavaScript数学函数:如何格式化答案w /逗号在千分之一的地方

时间:2013-06-05 14:37:38

标签: javascript

我正在编写一个javascript代码,允许用户计算他们的奖金。这是简单的数学。年薪x支付百分比=您的支付。

一切都建立起来并且有效,但我有一个格式问题。

而不是将你的奖金显示为$ 4000.3,我想在那里写一个逗号,并在分数部分增加零,所以它读取... $ 4,000.30。 (这个数量只是一个例子)

我不知道该怎么做。在我下面的代码计算中,我做了工资* payout / 100,然后是Math.round的数学运算,以便将它四舍五入到小数位,但是我无法弄清楚要添加或调整的内容以使其添加一个成千上万的逗号(顺便说一下,它永远不会有数百万),然后在最后添加一个零,如上例所示,它将它留给.30。

感谢任何帮助。我只需要在正确的方向上受到指导。谢谢!

以下是计算器这一部分的代码:

<script type="text/javascript">
function calculate()
{
   var salary = document.calculateBonus.salary.value;
   var payout = document.calculateBonus.payout.value;
   var answer = (salary * payout / 100);
   answer = Math.round(answer * 100) / 100;
   if(document.calculateBonus.salary.value == "" )
   {
     alert("Please enter your salary");
     document.calculateBonus.salary.focus();
     return false;
   }
   if(document.calculateBonus.payout.value == "" )
   {
     alert("Please put in your payout percentage");
     document.calculateBonus.payout.focus();
     return false;
   }
   (document.getElementById('payoutText').innerHTML =
   ("Your Bonus Payout is $" + answer));
   return false;
}
</script>

1 个答案:

答案 0 :(得分:1)

这似乎适用于您的简单用例

var answer = salary.toFixed(2);                     // convert to string
answer = answer.replace(/(\d)(\d{3})\./, "$1,$2."); // look for four digits and '.'

可以使用更短的正则表达式...