OneCompiler

roundToX

const roundToX = (xNum, pls) => {
const isFloat = (xVal) => !!(xVal % 1);
const isInteger = (xVal) => typeof xVal === "number" && isFinite(xVal) && Math.floor(xVal) === xVal;
if (isFloat(xNum) || isInteger(xNum)) {
const iPls = pls !== undefined && isInteger(pls) ? pls : 2;
const aNum = xNum.toString().match("-") ? xNum.toString().split('-') : [];
const fNum = aNum.length === 2 ? parseFloat(aNum[1] + 'e+' + iPls) : parseFloat(xNum + 'e+' + iPls);
const rNum = +(Math.round(fNum) + 'e-' + iPls);
return aNum.length === 2 ? parseFloat('-'+rNum) : rNum;
}
}

console.info('0 ->', roundToX(0));
console.info('1.005 ->', roundToX(1.005));
console.info('-1.005 ->', roundToX(-1.005));
console.info('10 ->', roundToX(10));
console.info('-10 ->', roundToX(-10));
console.info('1.7777777 [3 Stellen] ->', roundToX(1.7777777, 3));
console.info('-1.7777777 [3 Stellen] ->', roundToX(-1.7777777, 3));
console.info('9.1 ->', roundToX(9.1));
console.info('-9.1 ->', roundToX(-9.1));
console.info('1234.567878843333 [4 Stellen] ->', roundToX(1234.567878843333, 4));
console.info('-1234.567878843333 [4 Stellen] ->', roundToX(-1234.567878843333, 4));