php可以处理非常小的数字而不四舍五入吗?例如,当计算exp(-99) + 1/2
时,php将其计算为0.5
。这是有问题的,如果以后我想要乘以给定的结果,而不是一个非常小的数字,它只给出一半的数字。
echo exp(-99) + 1/2 // Outputs 0.5
超出了浮点数支持的范围。
在我的平台上(PHP浮动是64位)echo exp(-99);
当前返回1.0112214926104E-43
这是因为指数部分足够宽,可以表示e^-99
但是我补充说…echo exp(-99)+0.5;
我得到0.5
您期望的结果应该是大于50位的小数。
双浮点数没有这么大的尾数(通常限制在18-20位小数左右)。
如果你真的需要做这样的数学运算(处理非常小的数字而不舍入它们),你可以使用PHP的任意精度数学扩展: http://php.net/manual/en/book.bc.php