如何在PHP中舍入小数以匹配Google';s的结果


How to round decimals in PHP to match Google's results

我正试图开发一个php代码,以与谷歌计算器返回结果完全相同的方式匹配小数,使用的数学是3.14159265(pi)*三位数,例如在php中,pi*123返回386.41589595,而谷歌返回386.415896。我尝试过ceil、round和其他函数,但都没有成功。我需要谷歌数学用来舍入/减少π*数字的确切方法

这是因为将用于此应用程序的应用程序仅使用以谷歌计算器的方式建模的π*数字结果返回准确结果,任何帮助都将不胜感激。以下是其他一些例子,我试图弄清楚数学是用来取整的,但到目前为止我很不幸。

pi*205=644.026494(谷歌结果,我想要/需要,抓取谷歌是不够的,我需要开发一种本地php方法来获得这个确切的结果,其中"205"通常是一个随机数三位数,在这种情况下只是作为例子)

在php 205*pi=644.02649325中,我需要句点后面的数字来与谷歌计算器返回的结果完全匹配。

我该如何着手实现这一点?基本上,我需要谷歌为pi*数字(三位数)返回的确切结果,而不必依赖谷歌(抓取结果)。在php中一定有一些方法可以做到这一点,但到目前为止,我的实验一直没有结果。我不是数学最好的学生。我很感激你的帮助,理查德。非常感谢。

round(pi() * 123,6) gives 386.415896
<?php
$test =pi() * 123;
echo $test.'<br />';
$test1 = round($test, 6, PHP_ROUND_HALF_UP);
$test2 = round($test, 6, PHP_ROUND_HALF_DOWN);
echo $test1.'<br />';
echo $test2.'<br />';
386.41589639154 < Can't really become 5 at the end
386.415896
386.415896
?>

使用此

echo bcmul('3.14159265', '123', 8),"'n";

bcmul函数将采用第三个参数作为精度

请参阅此

检查精度/近似设置。这应该对你有效

echo round(205*M_PI,6);