我有以下两个php操作:
echo 0.0069131851196289 / 294; // 2.3514235100779E-5s
echo 3.340357542038 / 361349; // 9.2441311364857E-6s
有什么方法可以使php以固定的相同指数表示法输出这些数字?我想要的期望输出是这样的:
echo 0.0069131851196289 / 294; // 2.3514235100779E-5s
echo 3.340357542038 / 361349; // 0.92441311364857E-5s
答案 0 :(得分:0)
您可以使用arbitrary precision math functions(bcmath)或gmp。任何一种都可以以您想要的精度返回结果。
bcmath的一个例子是
echo bcdiv('0.0069131851196289', '294', 128)
// outputs: 0.00002351423510077857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857
我还建议您阅读在线手册中的PHP Float Data Type。警告部分很有启发性。
还要检查bcmath在php.ini
文件中是否处于活动状态。如果未设置,请重新启动服务器。 (或通过ini_set
启用它)
bcmath.scale = 1
另外,如果未安装bcmath模块/软件包,则需要下载。