const f = n => parseFloat(n.toFixed(5));
// Tests:
f(1) // 1
f(1.12) // 1.12
f(1.1234567890) // 1.12346
f(000001) // 1
f(100000) // 100000
f(-1e5) // -100000
Upd. Если обязательно именно отбросить без округления, то надо работать как со строками:
(()=>{
const f = x => {
const n = parseFloat(+x);
const sign = Math.sign(n);
// отсечь экпоненциальную запись (0.0000001).toString() === "1e-7"
if (Math.abs(n) < 1e-5) return 0;
return sign * parseFloat(x)
.toString()
.split('.')
.map((n,i) => i ? n.substring(0,5) : parseInt(n))
.join('.');
}
// Tests:
['0000001', '0.0000101', 1.000000001, -1e-4, -1e-5, -1e-6, 1e5, Math.E, 1, -1, 0, false, ]
.map(n => `${n} // ${f(n)}`)
.join('\n');
/*
0000001 // 1
0.0000101 // 0.00001
1.000000001 // 1
-0.0001 // -0.0001
-0.00001 // -0.00001
-0.000001 // 0
100000 // 100000
2.718281828459045 // 2.71828
1 // 1
-1 // 1
0 // 0
false // 0
*/