JavaScript数学函数:如何用千分位逗号格式化答案[重复]

Posted

技术标签:

【中文标题】JavaScript数学函数:如何用千分位逗号格式化答案[重复]【英文标题】:JavaScript Math Function: How to Format Answer w/ Comma in Thousandths Place [duplicate] 【发布时间】:2013-06-01 07:45:34 【问题描述】:

我正在编写一个 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>

【问题讨论】:

How can I format numbers as money in JavaScript? 【参考方案1】:

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

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

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

【讨论】:

我猜你宁愿需要一个更长的正则表达式 :-) 另外,你的只适用于 4 位数字 为什么需要更长的?顺便说一句,它也适用于 5 位和 6 位数字。 只是意味着处理更一般情况的"standard" pattern 更长 - 你几乎找不到比你更短的东西。 非常感谢!那行得通。我很抱歉这是一个重复的帖子。我遇到的问题的第二部分是独一无二的,但您对第一部分的回答实际上使一切都按照我需要的方式完美。再次感谢! 如果第二部分的意思是尾随0 得到小数点后两位数,这就是第一行的作用。

以上是关于JavaScript数学函数:如何用千分位逗号格式化答案[重复]的主要内容,如果未能解决你的问题,请参考以下文章

mysql数学函数

将1234567890转换成1,234,567,890 每3位用逗号隔开的形式 PHP千分位

DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?

js千分位用逗号隔开,全保留小数点后面的数字

总计字段上加格式:如千分位 比较笨拙的一种方法

添加数字千分位逗号正则分析