【问题标题】:How to cut decimal number using PHP如何使用 PHP 截取十进制数
【发布时间】:2017-02-14 17:16:07
【问题描述】:

我有一个代码,其中我得到了一些这样的数字:

92.682926829268 

我想把它们剪成这样:

92.68

这是我的代码:

<td><?php if (($row['TotalMatch']) > 10){ echo ($row['OK_05'] / $row['TotalMatch']) * 100; }   ?></td>

我尝试使用 floor 和 round,但我得到了我在帖子开头显示的示例(92.682926829268 而不是 92.68)

感谢您的关注

问候!

编辑你能给我一个我的代码的例子吗?谢谢

【问题讨论】:

  • round(92.682926829268, 2); 应该是你的朋友
  • 但我没有得到我想要的 - 请详细说明。我们无法读懂你的想法。
  • 是的,你得到了什么?您问题中的代码不包括地板或圆形。如果你可以展示你对这些函数做了什么,那么有人可以告诉你为什么它没有得到你想要的结果。
  • 我用粗体编辑并添加了一个编辑。我把我想要得到的东西放在开头:)
  • 您的编辑没有显示您对 floor 或 round 所做的操作以获得该数字。

标签: php decimal rounding


【解决方案1】:

使用sprintf() 格式化数字。

echo sprintf("%.2f", 92.682926829268);

示例: https://3v4l.org/U87T9

【讨论】:

  • 你能告诉我我的例子吗?因为我不知道如何将它插入我的代码中。谢谢
【解决方案2】:

您要格式化的表达式是这样的:

($row['OK_05'] / $row['TotalMatch']) * 100

因此,无论您决定使用哪个函数,都需要绕过该表达式。

至于使用哪个函数,你需要选择一个返回字符串,而不是浮点数的函数。

如果您使用round,并且您的表达式返回一个浮点数,该浮点数四舍五入为小数点后有两个零的数字,则结果中不会显示尾随零。例如,echo round(92.0006829268, 2) 将显示 92not 92.00。因此,如果您需要确保始终显示两位小数,请不要使用roundround 是数学函数,不是格式化函数。

floor 在这里真的一点用处都没有,因为它返回一个没有小数位的数字。


一种简单的方法是使用sprintf,如其他一些答案所示。

echo sprintf("%.2f", ($row['OK_05'] / $row['TotalMatch']) * 100);

sprintf 的第一个参数是"%.2f",它是一个格式字符串,指示第二个参数应显示为带两位小数的浮点数。第二个参数是你的表达方式。

按照其他答案中的建议使用bcdiv 也可以,但它的工作方式与sprintf 略有不同,并且在某些情况下会产生略微不同的结果。

sprintf 将四舍五入到指定的小数位数,例如

echo sprintf("%.2f", 926.89 / 10);   // outputs 92.69

bcdiv 将截断,所以

echo bcdiv(926.89, 10, 2);           // outputs 92.68

无论哪一个对你有用,就去做吧。

【讨论】:

  • 完美,谢谢!
【解决方案3】:

你可以使用round函数

$var = 92.682926829268;
$var = round($var, 2)

或者使用sprintf(%.2f删号)

$var = sprintf("%.2f", $var);

【讨论】:

    【解决方案4】:

    尝试使用 sprintf,如下所示:

    <?php
    $mynumber = 98.343434;
    echo sprintf('%.2f', $mynumber);    // this will output 98.34
    

    【讨论】:

      【解决方案5】:

      你可以使用bcdiv()

      bcdiv($row['OK_05'], ($row['TotalMatch'] * 100), 2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-10
        • 1970-01-01
        • 1970-01-01
        • 2016-04-22
        相关资源
        最近更新 更多