删除尾随零到2位小数

问题描述 投票:1回答:2

我希望你的帮助如下:我的价格可能超过2小数点,即0.009或0.0014

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

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

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

例:

  • 2.9000变为2.90
  • 0.0001仍为0.0001
  • 2.8540变为2.854
  • 1.0100变为1.01
  • 3.0000变为3.00

我已经尝试过num.toFixed(2),但这会删除第二个之后的所有小数。

我怎样才能实现我在示例中展示的内容?

提前致谢!

javascript price parsefloat
2个回答
4
投票

无论如何缩短它,只有与原始数字具有相同值时才返回新数字。

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

-1
投票

我的建议在这里:

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
© www.soinside.com 2019 - 2024. All rights reserved.