exp() возвращает NaN

Хорошо я застрял У меня есть этот код PHP:

    echo exp(12), '<br/>';
    echo exp(4.2);

как на странице PHP.net. И что у меня на экране:

    NAN
    298.86740096706

но потом наступает самая странная вещь. Я подумал, что, может быть, есть какая-то проблема PHP.ini с числами, такими как 2.67e8 и т. Д. (Я имею в виду с 'e' внутри) или что-то в этом роде. Но потом, когда я изменил приведенный выше код в:

    echo (2.67e8), '<br/>';
    echo exp(4.2);

вдруг я увидел это как угодно

    267000000
    NAN

Это что-то вроде WTF, особенно из-за последнего NAN, когда вначале он был вполне нормальным, спокойным с плавающей точкой 298.86740096706, но потом без всякой причины он отправился в ад на смену NAN. Есть ли у вас какие-либо идеи? Пожалуйста?

1 ответ

Если это правда, это должно быть ошибка в вашей версии PHP. Пожалуйста, сообщите об этом.

Кстати, я не могу воспроизвести его на PHP 5.3.2. Бег:

php -r 'do { $c = exp(4.2); echo "point "; } while (is_nan($c)); echo "$c\n";'

производит ожидаемый результат:

point 66.686331040925
Другие вопросы по тегам