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,我已经把你的要求添加到我的回答中了。如果你把我的回答标为“答案”,我会非常高兴。如果没有,我很乐意帮忙。非常感谢。