dr.Brain

doctor Brain

мир глазами веб-разработчика

JavaScript: почему parseInt(0.0000005) возвращает 5

разбираемся с особенностями использования parseInt() в JavaScript

dr.Brain

время чтения 1 мин.

Photo by Richard Lee on Unsplash

Функция parseInt() довольно удобна для преобразования строк в целые числа, но иногда она дает неожиданные результаты.

Вот одна из таких загадок:

parseInt(0.0000005) // 5

Попробуем разобраться: сначала parseInt() преобразует аргумент в строку. Поэтому число 0.0000005 JavaScript автоматически преобразует в строку 5e-7.

Следующим шагом parseInt() читает полученную строку слева направно и останавливается на первом нечисловом символе. В 5e-7 он останавливается на цифре 5 и возвращает ее. Он не обрабатывает часть строки, начинающуюся с символа e и игнорирует десятичные знаки.

Таким образом, parseInt() обрабатывает числа как строки, считывая информацию до первого нецифрового символа, поэтому и результатом является целое число 5, находящееся до первого нецифрового символа.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.