JavaScript: почему parseInt(0.0000005) возвращает 5
разбираемся с особенностями использования parseInt() в JavaScript
Функция parseInt()
довольно удобна для преобразования строк в целые числа, но иногда она дает неожиданные результаты.
Вот одна из таких загадок:
parseInt(0.0000005) // 5
Попробуем разобраться: сначала parseInt()
преобразует аргумент в строку. Поэтому число 0.0000005
JavaScript автоматически преобразует в строку 5e-7
.
Следующим шагом parseInt()
читает полученную строку слева направно и останавливается на первом нечисловом символе. В 5e-7
он останавливается на цифре 5 и возвращает ее. Он не обрабатывает часть строки, начинающуюся с символа e
и игнорирует десятичные знаки.
Таким образом, parseInt()
обрабатывает числа как строки, считывая информацию до первого нецифрового символа, поэтому и результатом является целое число 5, находящееся до первого нецифрового символа.
Спасибо за внимание.