Javascript 什么';JS中的切片调用有什么问题?

Javascript 什么';JS中的切片调用有什么问题?,javascript,css,slice,Javascript,Css,Slice,我写了这行,但得到了一个错误的回应: 切片无法在那里处理 为什么以及如何解决这个问题 function (row) { var r = Math.round(Object.values(row)[3] / Object.values(row)[4]); var t = Object.values(row)[2]; var s = Math.round((t - r) / t * 100); return '<span id="up">${s.slice

我写了这行,但得到了一个错误的回应:

切片无法在那里处理

为什么以及如何解决这个问题

function (row) {
    var r = Math.round(Object.values(row)[3] / Object.values(row)[4]);
    var t = Object.values(row)[2];
    var s = Math.round((t - r) / t * 100);
    return '<span id="up">${s.slice(0,2)}%</span>'
}
函数(行){
var r=Math.round(Object.values(行)[3]/Object.values(行)[4]);
var t=对象值(行)[2];
var s=数学圆整((t-r)/t*100);
返回“${s.slice(0,2)}%”
}

您的变量
s
是一个数字,但是
slice
函数需要一个
字符串。解决方案是将
s
转换为字符串:

const slice = `${s}`.slice(0, 2);
编辑

要显示小数位数为
n
的数字,您可以在四舍五入之前将其乘以
10^n
,然后将其除以相同的数字,将
n
小数后的任何数字都切掉

// display number with n decimals
const numberDisplay = (number, numberOfDecimals) => Math.round(number * Math.pow(10, numberOfDecimals)) / Math.pow(10, numberOfDecimals);

// your desired number display
const slice = numberDisplay(s, 2);

slice
不是关于数字的方法,而是关于数组或字符串的方法
Math.round
返回一个数字。请添加
和想要的结果。@borneo-我不知道“分隔数字”是什么意思。如果要使用
切片
,请将数字转换为字符串(我猜这是你想要的,不是数组)。也许你应该使用
s.toString()
而不是
toString(s)
…但我怀疑当达到100%时,您的代码是否能正常工作。。。那么,为什么您首先只想获取
s
值的前两位数字呢?我认为这完全没有必要。如果
s
的值不能达到100,那么一切都应该正常(我认为)。如果它可以达到100,您可能也应该考虑这3个数字(不要显示
10%
,而不是
100%
)…输出是
-1;%。我填写的是
-1,00%
你能给我提供
t
s
的示例值吗?这样我就可以知道你想做什么了?您的请求是修复
slice
错误,我就是这么做的。您所说的是一个逻辑错误。
t
和s
的值是一个后面有8位数字的数字,例如
4,012301234
。我想将此值限制为后面2个数字。那是allI,我已经把你的要求添加到我的回答中了。如果你把我的回答标为“答案”,我会非常高兴。如果没有,我很乐意帮忙。非常感谢。