Удалить конечные нули до 2 десятичных позиций - PullRequest
0 голосов
/ 06 сентября 2018

Мне нужна ваша помощь в следующем: у меня есть цены, которые могут быть больше, чем 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), но после 2-го удаляются все десятичные дроби.

Как мне добиться того, что я показал в примере?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вот мое предложение:

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
0 голосов
/ 06 сентября 2018

Сократите его независимо и верните новый номер, только если он имеет то же значение, что и оригинал.

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
...