【问题标题】:How to round decimals in PHP to match Google's results如何在 PHP 中舍入小数以匹配 Google 的结果
【发布时间】:2012-01-30 06:02:57
【问题描述】:

我正在尝试开发一个 php 代码以与 Google 计算器返回结果的完全相同的方式匹配小数,所使用的数学是 3.14159265 (pi) * 三位数,例如在 php 中 pi * 123 返回 386.41589595 ,但 Google 返回 386.415896。试了ceil、round等功能都无济于事。我需要谷歌数学用来四舍五入/减少 pi * 位数的确切方法

这是因为此应用程序仅使用 pi * digit 结果返回准确的结果,该结果以 Google 计算器的方式建模,任何帮助将不胜感激。这里有一些其他的例子,我试图弄清楚用什么数学来四舍五入,但到目前为止我一直很不幸。

pi * 205 = 644.026494(我想要/需要的谷歌结果,抓取谷歌是不够的,我需要开发一种原生 php 方法来获得这个确切的结果,其中“205”通常是随机数 3位数,本例仅作为示例)

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

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

【问题讨论】:

  • 把你的服务器送回学校,做更多的数学;)

标签: php calculator pi ceil


【解决方案1】:
round(pi() * 123,6) gives 386.415896

【讨论】:

    【解决方案2】:
    <?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
    ?>
    

    【讨论】:

      【解决方案3】:

      使用这个

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

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

      refer this

      【讨论】:

        【解决方案4】:

        检查您的精度/近似设置。这应该适合你

        echo round(205*M_PI,6); 
        

        【讨论】:

          猜你喜欢
          • 2022-01-16
          • 1970-01-01
          • 2020-09-25
          • 2012-04-13
          • 1970-01-01
          • 1970-01-01
          • 2011-12-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多