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数学函数:如何用千分位逗号格式化答案[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将1234567890转换成1,234,567,890 每3位用逗号隔开的形式 PHP千分位