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;
我收到了来自 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 return0
of if we useFloat%1
it will return some point value like0.####
.
演示
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;