toFixed 十进制值的条件

toFixed Condition for decimal values

我收到了来自 API 的十进制格式的回复,例如 89.9999 我已经使用 toFixed 并四舍五入为 89.90。但问题是如果我得到的值为 90,因为 toFixed 它显示为 90.00 ,因为我只需要 90。有什么办法可以实现吗?

我尝试进行基本计算的代码是:

 var myPerc= value.studPerc === 0 ? '0' : value.studPerc.toFixed(2); 

toFixed 之后使用 slice 删除结尾的 .00(如果存在):

const getPerc = num => {
  const str = num.toFixed(2);
  if (str.slice(-2) === '00') return str.slice(0, str.length - 3);
  return str;
}
console.log(getPerc(90));
console.log(getPerc(89.9999));
console.log(getPerc(89.55));

你可以试试:

Math.round(value * 100) / 100

你可以这样做来检查使用 %

Whenever we use Integer%1 it will return 0 of if we use Float%1 it will return some point value like 0.####.

演示

function setToFixed(v) {
  console.log(v % 1 ? v.toFixed(2) : v)
}

setToFixed(90)


setToFixed(89.7589999)
.as-console-wrapper { max-height: 100% !important; top: 0; }

您可以使用模数 % 首先检测值是否为小数,因此您可以像下面那样做

var value = n % 1 !== 0 ? n.toFixed(2) : n;