- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发的一个网站(我继承的......我不太了解 javascript)当前设置的代码是在数据库中任何数字的末尾显示“.00”(PHP 包括页面,实际上),以便它在在线表单上显示为货币。
我的客户现在想要在列表中添加一个金额,其中包括美分(5.50 美元),我需要修改或修改脚本的帮助,以便我可以包含这些非完整货币金额。
这是(我认为/推测)解决货币格式问题的脚本片段:
function CurrencyFormatted(amount)
{
var i = parseFloat(amount);
if(isNaN(i)) { i = 0.00; }
var minus = '';
if(i < 0) { minus = '-'; }
i = Math.abs(i);
i = parseInt((i + .005) * 100);
i = i / 100;
s = new String(i);
if(s.indexOf('.') < 0) { s += '.00'; }
if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
s = minus + s;
return s;
}
有没有办法添加或更改此代码,以便我可以显示此(以及 future 类似)金额所需的具体美分?
最佳答案
该代码正在执行一些有趣的舍入操作,我无法真正解决这些问题,但要格式化小数点右侧具有固定位数的数字,请使用 toFixed
数字函数:
var n = 1.2345;
n.toFixed(2); // "1.23"
请注意,它会进行舍入,因此:
(1.234).toFixed(2); // "1.23"
(1.235).toFixed(2); // "1.24"
(当您对变量调用 toFixed
时,不需要括号,但当对文字调用它时,您确实需要它们,就像我在上面两个示例中所做的那样。当然,在您的情况下,您将使用变量,因此不需要它们。)
在下面回复您的评论/问题:
Thanks for the quick replies! I guess I should have said I don't know javascript AT ALL, so my questions are: 1) where do I insert the codes you offer above into my existing code...
1)您在问题中引用的代码正在对输入的数字进行一系列操作,包括在尝试将其四舍五入到两位数之前添加半美分(以非常非最佳的方式)。如果现在的目标是忠实地再现输入数字的四舍五入到两位数的版本(这些都不会添加半美分的东西),您可以用以下内容替换整个函数:
function CurrencyFormatted(amount)
{
return parseFloat(amount).toFixed(2);
}
如果你想继续加半分钱:
function CurrencyFormatted(amount)
{
return (parseFloat(amount) + 0.005).toFixed(2);
}
...and 2) will this allow all of my existing other numbers to continue displaying as they are (e.g. "25" in my include file displays as "25.00")?
您输入到上面的任何数字(或数字字符串)都将被格式化为小数点右侧两位数字,即使这些数字是00
。因此,根据上述内容,CurrencyFormatted("25")
将返回 "25.00"
。
...Or do I use this code you suggest to replace part or all of the sample code I posted, and thus, would I then need to change all my database numbers to accommodate this? (i.e. should I add two zeros to the end of all my whole numbers now? (25 becomes 2500, etc.)
您不需要将 .00
添加到数据库中的整数或类似的内容。
关于php - 如何修改现有的 javascript 以显示包括美分在内的货币值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10331318/
我是一名优秀的程序员,十分优秀!