我需要在点后有2个符号[重复]
Posted
技术标签:
【中文标题】我需要在点后有2个符号[重复]【英文标题】:I need to have 2 symbols after dot [duplicate] 【发布时间】:2012-01-03 21:18:55 【问题描述】:可能重复:How can I format numbers as money in javascript?Format number to always show 2 decimal placesHow do I round to 2 decimal places?
在 php 中,我可以执行以下操作以四舍五入到小数点后 2 位;
$number = 3.45667;
$result = number_format($number, 2, '.', ''); // 3.46
如何在 JavaScript 中做同样的事情?
【问题讨论】:
您接受了一个丑陋且无效的解决方案。干得好! 【参考方案1】:var number = 3.45667;
number = Math.round(100 * number) / 100;
然而,这不会像 PHP 的 number_format()
那样工作。 IE。它不会将 2.4 转换为 2.40。为了使它起作用,您需要更多:
number = number.toString();
if (!number.match(/\./))
number += '.';
while (!number.match(/\.\d\d$/))
number += '0';
【讨论】:
无需将 2.4 转换为 2.40。我只需要在点后不超过 2 个符号。它会起作用吗? 是的,@pzztzz。只需在 Firebug 控制台或 JSfiddle 上启动它。 您的第一个解决方案不正确。考虑 0.005 是如何工作的【参考方案2】:var number = 3.45667;
number.toFixed(2)
// returns "3.46"
toFixed()
是小数点后出现的位数。它还将填充 0 以适应输入大小。
【讨论】:
【参考方案3】:你可以使用下面的代码
var number = 3.45667;
number.toFixed(2);
如果要使用四舍五入,请先乘以 100,然后四舍五入并除以 100。
【讨论】:
@Matt,四舍五入正是我们所要求的。 @AlexeyLebedev:我想马特指的是答案中的最后一句话,这是不必要的,因为toFixed()
确实圆了。
好吧,如果他想要 floor 或 ceil,他需要使用 Math 对象【参考方案4】:
简单版:像这样使用.toFixed():
var num= 3.45667;
num.toFixed(2); // 3.46
复杂的版本,如果你想要 number_format() 的确切行为是使用this method from php.js:
var num= 3.45667;
number_format($number, 2, '.', ''); // 3.46
【讨论】:
以上是关于我需要在点后有2个符号[重复]的主要内容,如果未能解决你的问题,请参考以下文章
EXCEL中同一列(几百个)单元格内,都要加入标点符号(°)的快捷方式