4

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

一切都已构建并且可以正常工作,但是我有一个格式问题。

我不想将您的支出显示为 4000.3 美元,而是在其中添加一个逗号,并在美分部分添加一个零,因此它显示为... 4,000.30 美元。(这个金额只是一个例子)

我不知道该怎么做。在下面的代码计算中,我计算了薪水 * 支付 / 100,然后是 Math.round 以便将其四舍五入到小数点后两位,但我不知道要添加什么或调整什么以使其添加以千为单位的逗号(顺便说一句,它永远不会以百万为单位),然后在末尾添加一个零,如果像上面的示例一样,它会将其保留为 0.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>
4

1 回答 1

1

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

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

更短的正则表达式可能可用...

于 2013-06-05T14:44:32.847 回答