Атрибут currentTime автоматически изменяется на 16.559999, когда я устанавливаю его значение 16.56 в javascript. Мне нужно правильное значение, равное 16.56.<audio> currentTime автоматически меняет значение
Любые идеи для чего он меняет стоимость?
Атрибут currentTime автоматически изменяется на 16.559999, когда я устанавливаю его значение 16.56 в javascript. Мне нужно правильное значение, равное 16.56.<audio> currentTime автоматически меняет значение
Любые идеи для чего он меняет стоимость?
Это потому, что javascript использует числа с плавающей запятой для представления всех чисел, см. w3schools. Числа с плавающей запятой не могут представлять все числа, поскольку они имеют определенную точность. 16.56 является одним из (многих) чисел, которые не могут быть представлены полностью. Это похоже на то, что мы не можем точно представить 1/3
в десятичной форме, поскольку для этого требуется повторяющееся десятичное число. См. this discussion для более подробной информации.
Два варианта, чтобы обойти это, округлены до двух знаков после запятой или, возможно, выполняют все операции, умноженные на 100, затем делят на 100 при отображении результата.
если для целей отображения просто выполните 'el.currentTime.toFixed (2)'. Если x100 запомнит, чтобы сделать целое число ('Math.round (n * 100)/100'), прежде чем делить его снова. – K3N
Он работает как шарм. Спасибо за объяснение –