На вид непоследовательное поведение toFixed()Javascript

Форум по Javascript
Ответить
Гость
 На вид непоследовательное поведение toFixed()

Сообщение Гость »


Я знаю, что функция toFixed() не предназначена для округления, но я до сих пор не могу понять, почему она иногда округляет вверх, а иногда вниз, когда число заканчивается на .5 Взгляните на эти примеры:

Пример toFixed(0)

0.5.toFixed(0) > '1' // округляем вверх 1.5.toИсправлено(0) > '2' // округляем вверх 2.5.toИсправлено(0) > '3' // округляем вверх 3.5.toИсправлено(0) > '4' // округляем вверх 4.5.toИсправлено(0) > '5' // округляем вверх 5.5.toИсправлено(0) > '6' // округляем вверх 6.5.toИсправлено(0) > '7' // округляем вверх 7.5.toИсправлено(0) > '8' // округляем вверх 8.5.toИсправлено(0) > '9' // округляем вверх 9.5.toИсправлено(0) > '10' // округляем вверх Постоянное поведение для этого примера.

Пример toFixed(1)

0.05.toFixed(1) > '0,1' // округляем вверх 1.05.toИсправлено(1) > '1.1' // округляем вверх 2.05.toИсправлено(1) > '2.0' // округляем вниз 3.05.toИсправлено(1) > '3.0' // округляем вниз 4.05.toИсправлено(1) > '4.0' // округляем вниз 5.05.toИсправлено(1) > '5.0' // округляем вниз 6.05.toИсправлено(1) > '6.0' // округляем вниз 7.05.toИсправлено(1) > '7.0' // округляем вниз 8.05.toИсправлено(1) > '8.1' // округляем вверх 9.05.toИсправлено(1) > '9.1' // округляем вверх Здесь все начинает ломаться. Кажется, первая цифра почему-то влияет на округление. Иногда оно округляется в большую сторону, иногда в меньшую.

Пример toFixed(2)

0.005.toFixed(2) > '0,01' // округляем вверх 1.005.toFixed(2) > '1,00' // округляем вниз 2.005.toИсправлено(2) > '2,00' // округляем вниз 3.005.toИсправлено(2) > '3,00' // округляем вниз 4.005.toИсправлено(2) > '4,00' // округляем вниз 5.005.toИсправлено(2) > '5,00' // округляем вниз 6.005.toИсправлено(2) > '6,00' // округляем вниз 7.005.toИсправлено(2) > '7.00' // округляем вниз 8.005.toИсправлено(2) > '8.01' // округляем вверх 9.005.toИсправлено(2) > '9.01' // округляем вверх Еще более странно то, что на округление не всегда влияют одни и те же первые цифры. Вы можете видеть, что результаты здесь похожи на пример toFixed(1), но не совсем такие же.

Это ошибка, какая-то проблема с браузером или ожидаемое поведение?

Моя система:
[*]Apple M1 Pro [*]Версия Chrome 116.0.5845.187
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»