если вывод является плавающим значением, используйте tofixed (2), иначе избегайте .00 - PullRequest
2 голосов
/ 09 ноября 2019

У меня есть кое-что о toFixed (2);

var abc = 20;
var xyz = 20;
var sss = ((parseInt(abc) / parseInt(xyz));
if (!isNaN(sss))
{
   console.log(sss);
}

вывод: 1

    var abc = 20;
    var xyz = 19;
    var sss = (parseInt(abc) / parseInt(xyz));
    if (!isNaN(sss))
    {
       console.log(sss.toFixed(2));
    }

вывод: 1,05

var abc = 20;
var xyz = 20;
var sss = ((parseInt(abc) / parseInt(xyz));
if (!isNaN(sss))
{
   console.log(sss.toFixed(2));
}

вывод: 1,00

Проблема в том, что я хочу избежать конечных цифр, если результат является целым числом. Я только хочу формат toFixed(2), когда результат является плавающим. Как я могу это сделать?

Пример:

var num = (1.01).toFixed(2)
console.log( num) //output ok 1.01
// But When
var num = (1.00).toFixed(2)
console.log( num) //expected output 1

У меня возникла проблема, ребята, пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 09 ноября 2019

Проверка с Number.isInteger:

const show = (a, b) => {
  const div = a / b;
  if (Number.isNaN(div)) {
    return;
  }
  const toDisplay = Number.isInteger(div) ? div : div.toFixed(2);
  console.log(toDisplay);
};

show(19, 20);
show(20, 20);
show(22, 20);
0 голосов
/ 09 ноября 2019

Еще одно решение. Примените функцию parseInt() в операторе if, в случае успеха напечатайте sss, иначе напечатайте sss.toFixed(2)

function a(i1,i2){
var abc = i1
var xyz = i2;
var sss = (parseInt(abc) / parseInt(xyz));
    if (!isNaN(sss))
    {
        var val =  parseInt(sss.toFixed(2)) ? sss : sss.toFixed(2);
        console.log(val);
        return val;
    }
}
a(19,20);
a(20,20);
a(22,20);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...