【问题标题】:PHP dividing gives 0PHP除法给出0
【发布时间】:2015-07-20 09:28:47
【问题描述】:

我正在划分这些数字; 16 /25 并在我想要 0.64 的地方得到 0

我的代码:

echo 16 / 25;

我从我的 .html 文件中获取这些数字,并为您简化了代码。

我的原始代码:

<html>
<body>
<?php
$poolSize = (int)$_POST["poolSize"];
$turnoverTime = (int)$_POST["turnoverTime"];
$turnoverRate = (int)$_POST["turnoverRate"];

$pumpRequirement = 0;
$filterAreaRequirement = 0;


function calcPumpRequirement($poolSize, $turnoverTime){
    $pumpRequirement = round($poolSize / $turnoverTime);
    echo $pumpRequirement."<br>";
}

function calcFilterAreaRequirement($pumpRequirement, $turnoverRate){
    $filterAreaRequirement = $pumpRequirement / $turnoverRate;
    echo $filterAreaRequirement;
}

calcPumpRequirement($poolSize, $turnoverTime);
calcFilterAreaRequirement($pumpRequirement, $turnoverRate);
?>

</body>
</html>

对不起,我的菜鸟错误。今天刚开始使用PHP。

【问题讨论】:

  • 你正在使用round()函数
  • 不在函数 calcFitlerAreaRequirement 中,该函数是计算 16 / 25 的函数
  • @Detilium 也许是因为$pumpRequirement 等于 0 ?
  • 修复此代码示例以仅包含损坏的部分,并为我们提供var_dump's
  • @DishaV。为什么要删除 (int) ?这部分代码没有做错任何事情。

标签: php math operators divide


【解决方案1】:

您将 $pumpRequirement 设置为 0。所以它始终为 0。您需要在函数之外设置它。

function calcPumpRequirement($poolSize, $turnoverTime){
    $pumpRequirement = round($poolSize / $turnoverTime);
    echo $pumpRequirement."<br>";
    /// return value
    return $pumpRequirement;
}

$pumpRequirement = calcPumpRequirement($poolSize, $turnoverTime);
calcFilterAreaRequirement($pumpRequirement, $turnoverRate);

【讨论】:

    【解决方案2】:

    首先,查看关于Variable Scope的手册。

    最后,echo 16/25 运行良好。您的问题是您希望您的 $filterAreaRequirement var 在您愿意更改的函数范围之外进行更改。

    【讨论】:

    • 使它与global 一起工作。谢谢你。我很抱歉我的菜鸟错误。今天刚开始使用 PHP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 2020-05-16
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    相关资源
    最近更新 更多