Ошибка в JS формуле
Почему выдает 1.25101 ?
Должно быть 1.25102
function numTick(price, tick) {
if (parseFloat(tick) == 0) return Number(price);
let prec = (String(tick).split('.')[1] || '').length;
let x = (parseInt(price / tick) * tick).toFixed(prec);
return Number(x);
}
console.log(numTick(1.25102, 0.00001));
Ответы (1 шт):
Автор решения: Oliver Patterson
→ Ссылка
У вас было лишнее parseInt.
function numTick(price, tick) {
if (parseFloat(tick) == 0) return Number(price);
let prec = (String(tick).split('.')[1] || '').length;
let x = ((price / tick) * tick).toFixed(prec); // Вот тут
return Number(x);
}
console.log(numTick(1.25102, 0.00001));
Как подсказал в комментариях @Grundy, можно обойтись без умножения и деления.
function numTick(price, tick) {
if (parseFloat(tick) == 0) return Number(price);
let prec = (String(tick).split('.')[1] || '').length;
let x = price.toFixed(prec); // Вот тут
return Number(x);
}
console.log(numTick(1.25102, 0.00001));