Сохраняйте заданное количество знаков после запятой при увеличении на заданное количество - PullRequest
0 голосов
/ 27 февраля 2020

Я делаю таймер, который считает только десятичные дроби с интервалом 1/30 (так что единственными десятичными знаками являются .x00, .x33, .x67).

До сих пор он работал довольно хорошо, но то, что сводит меня с ума, так это то, что если десятичное число кратно 1/10, оно сокращается до .x, когда я хочу, чтобы оно было .x00 (если это имеет смысл).

Это вызывает последние две цифры быстро моргать, и я верю, что наличие 00 на конце сделает его более плавным. У меня есть это, чтобы отобразить вывод: out.innerHTML = s+r.toFixed(3)*1; (для справки).
Fiddle

Ответы [ 2 ]

3 голосов
/ 27 февраля 2020
out.innerHTML = (s+r).toFixed(3)

Скобки должны делать свое дело. Он сохраняет приоритет оператора в правильном порядке. Ссылка

1 голос
/ 27 февраля 2020

Измените out.innerHTML = s+r.toFixed(3)*1 на out.innerHTML = (s + r).toFixed(3).

Умножение на 1 преобразует ваше значение обратно в число, а затем javascript преобразует это обратно в строку и усекает конечные нули. Сохранение преобразованных результатов в виде строки предотвращает усечение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...