使用javascript将十进制位置添加到数字中

Owe*_*wen 20 javascript formatting decimal

我把这个数字作为整数439980

我想在右边2个位置放一个小数位.使其成为4399.80

字符数可以随时改变,所以我总是需要它从右边开始是2位小数.

我该怎么办呢?

谢谢

nnn*_*nnn 31

function insertDecimal(num) {
   return (num / 100).toFixed(2);
}
Run Code Online (Sandbox Code Playgroud)

  • 我用total =(total / 100).toFixed(2); 但是谢谢! (2认同)
  • @Ayyoub - 它对我有用。输入 `10` 它返回 `"0.10"`,对于 `7` 它返回 `"0.07"` - 你认为在这些情况下它应该返回什么? (2认同)

jac*_*son 6

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

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

insertDecimal(99552) //995.52
insertDecimal("501") //5.01
Run Code Online (Sandbox Code Playgroud)

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

insertDecimal(500); //5
Run Code Online (Sandbox Code Playgroud)

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

笔记

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

return +(num / 100).toFixed(2);
Run Code Online (Sandbox Code Playgroud)

或乘以 1 例如

return (num / 100).toFixed(2) * 1;
Run Code Online (Sandbox Code Playgroud)

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