【发布时间】:2012-05-20 11:08:40
【问题描述】:
好吧,我卡住了。我有这个 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 取代了。你有什么想法?请问?
【问题讨论】:
-
无法复制问题。
php -r "echo exp(12), '<br/>'; echo exp(4.2);"=162754.791419<br/>66.686331040925。使用PHP 5.3.10 -
我也试过了:
php > echo exp(12) . "\n" . exp(4.2) . "\n";162754.791419 66.686331040925Arch Linux 上的 PHP 5.4.3 -
你写的代码是你的代码,你所有的代码,完全是你的代码,除了你的代码之外什么都没有?
-
@OP:你能复制这种行为吗?每次执行都会出错吗?某些处决的结果/现象是否不同?
-
好的,现在我尝试以这种方式循环它:
do { $c=exp(4.2); echo 'point '; } while (is_nan($c));,我有point point 66.686331040925,所以它有点工作,但仍然以一种奇怪、缓慢的方式