删除尾随零到小数点后 2 位

Remove trailing zeroes to 2 decimal positions

我希望您在以下方面提供帮助:我的价格可能超过 2 个小数点,即 0.009 或 0.0014

但是,我也有正常价格的价格,例如 2.9 或 14.45。

我将所有价格存储到小数点后 4 位,即 2.9 变为 2.9000。

我正在寻找的是以下内容,我想显示至少 2 个小数点 num.toFixed(2),但是如果有超过 2 个小数点并且那些不是 0 我想也给他们看。

示例:

我试过 num.toFixed(2) 但这会删除第 2 位之后的所有小数。

如何实现我在示例中显示的内容?

提前致谢!

无论如何缩短它,只有 return 如果新数字与原始数字具有相同的值。

function shortenOrReturn(num) {
  var shortNum = num.toFixed(2);
  return (shortNum == num) ? shortNum : num;
}

console.log(shortenOrReturn(2.9000)) // becomes 2.90
console.log(shortenOrReturn(0.0001)) // remains 0.0001
console.log(shortenOrReturn(2.8540)) // becomes 2.854
console.log(shortenOrReturn(1.0100)) // becomes 1.01
console.log(shortenOrReturn(3.0000)) // becomes 3.00

这里是我的建议:

function removeZerosFromRight (input) {
      return Number(input.toString())
    }

示例:

  • removeZerosFromRight(123.0011) => 123.0011
  • removeZerosFromRight(123.0010) => 123.001
  • removeZerosFromRight(123.0100) => 123.01
  • removeZerosFromRight(123.1000) => 123.1
  • removeZerosFromRight(123.02) => 123.02