30

我有这个数字作为整数 439980

我想将小数点放在右边的 2 位。使其成为 4399.80

字符数可以随时更改,所以我总是需要它是右边的小数点后 2 位。

我该怎么办?

谢谢

4

2 回答 2

42
function insertDecimal(num) {
   return (num / 100).toFixed(2);
}
于 2012-07-17T14:25:18.497 回答
4

只需添加 toFixed() 将返回一个字符串值,因此如果您需要一个整数,它将需要 1 个过滤器。实际上,您可以使用 Number() 将 nnnnnn 函数的返回值包装起来以获取整数:

function insertDecimal(num) {
   return Number((num / 100).toFixed(2));
}

insertDecimal(99552) //995.52
insertDecimal("501") //5.01

这里唯一的问题是 JS 将删除尾随的 '0',因此 439980 将返回 4399.8,而不是您可能希望的 4399.80:

insertDecimal(500); //5

如果您只是打印结果,那么 nnnnnn 的原始版本可以完美运行!

笔记

JavaScript 的 Number 函数可能会导致某些输入的一些非常意外的返回值。您可以放弃对 Number 的调用并使用一元运算符将字符串值强制为整数

return +(num / 100).toFixed(2);

或乘以 1 例如

return (num / 100).toFixed(2) * 1;

TIL:JavaScript 的核心数学系统有点奇怪

于 2016-05-09T10:04:23.240 回答