Как вывести 2 знака после точки например 0.01 JS
Доброй ночи, ломаю себе голову с выводом двух знаков после запятой.
Делаю значения clickPower = 0.01; Далее перехожу на сайт делаю 6 кликов и получаю число 0.060000000000000005 а по идеи должен получить 0.06, первые 5 кликов отображает число правильно 0.01 0.02. На просторах интернета нашел .toFixed(2) но когда я добавляю его к
document.getElementById('clicks-count').innerText = clicks.toFixed(2) + clickPower;
В конечном итоге я получаю число 0.01.01 когда делаешь клик еще раз получаем 0.02.01 Не пойму почему появляется .01 в конце.
В консоли все показывает как и должно быть
var clicks = 0;
var clickPower = 0.01;
const onClick = () => {
document.getElementById('clicks-count').innerText = clicks + clickPower;
clicks = clicks + clickPower;
console.info(clicks.toFixed(2));
}
document.getElementById('big-btn').addEventListener('click', onClick)
<div class="balance__container">
<div id="clicks-count" class="balance">0</div>
</div>
<div id="big-btn" class="poiner">
<div draggable="false" class="pointer__img"></div>
</div>
Ответы (1 шт):
Метод Number.toFixed() возвращает string, а не number.
Поэтому оператор + применимый к строке конкатенирует, а не складывает.
Вам строку нужно обратно привести к числу:
document.getElementById('clicks-count').innerText = +clicks.toFixed(2) + clickPower; ;
// ^
// + приведет number к string
// или можно использовать parseInt(clicks.toFixed(2));
Или:
document.getElementById('clicks-count').innerText = (clicks + clickPower).toFixed(2) ;
Прочитайте внимательно топик на MDN по методу toFixed(), там все это описывается.
Вот еще статья про приведение типов в JS.