如果值大于4,我正在寻找一种方法,用逗号从输入中删除最后一个数字。
示例:
值:13314556应为->133145.
有没有办法用这样的东西去掉这个数字的最后4位之后的所有数字?
let value = 13,314556
let result= value.split(',')[1].trim();
if(result.length > 4){
...
}
toFixed()
您可以调用toFixed()
将数字格式化为小数位数。
有关toFixed(),请参阅MDN文档
根据上述文件中给出的示例修改:
function myFormat(x) {
return Number.parseFloat(x).toFixed(4);
}
// expected output: "13.3146" because of rounding
console.log(myFormat(13.314556));
// expected output: "0.0040"
console.log(myFormat(0.004));
// expected output: "123000.0000"
console.log(myFormat('1.23e+5'));
如果你不想四舍五入,只需更精确地剪裁得到的字符串的末尾。
function myFormat(x) {
return Number.parseFloat(x).toFixed(6).replace(/dd$/, '');
}
// expected output: "13.3145", will not do rounding
console.log(myFormat(13.314556));
如果你正在使用货币或进行类似的重要计算,可以考虑使用decimal.js.这样的库
另一种选择是乘以10000,floor it,然后除以10000。
let value = 13.314556;
value=Math.floor(value*10000)/10000;
console.log(value)
或者,如果你想通过编程控制数字的数量,你可以使用这样的东西:
let value = 13.314556;
value=Math.floor(value*Math.pow(10, 4))/Math.pow(10, 4);
console.log(value)
也许您正在寻找slice函数。
let value = "13,314556"
let result= value.split(',')[1].trim();
if(result.length > 4){
console.log(result.split('').slice(0,4).join(''))
}
我会用切片和连接方法
切片,用于根据的长度对字符串进行切片
加入以根据您的意愿重新创建号码
编辑
我添加了检查逗号是否在数字中,以及一个具有所需长度的参数
function splitNumber(num, nbAfterComa) {
const number = num.toString()
if(!number.includes('.')){
return number
}
const splitedValue = number.split('.')
splitedValue[1] = splitedValue[1].trim().slice(0, nbAfterComa);
return nbAfterComa > 0 ? splitedValue.join(',') : splitedValue[0]
}
console.log(splitNumber(13.314556, 4))
console.log(splitNumber(13.3, 4))
console.log(splitNumber(13.314556, 1))
console.log(splitNumber(13.314556, 0))
console.log(splitNumber(13, 8))