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

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

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


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

Пример toFixed(0)

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

Пример toFixed(1)

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

Пример toFixed(2)

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

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

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

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

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

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

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

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