PHP四舍五入中的除法变量


Dividing variables in PHP rounding

我有一个简单的计算器脚本,用于计算facebook的见解。

在我的脚本中有一个名为fb_growth的函数,我在其中传递两个参数:一个用于当月的数据($moc),另一个用于上月的数据($mop),我正试图找到这两个参数之间的增长百分比(正或负)。这是我的函数脚本:

//Growth Calculator Function
function fb_growth($moc, $mop) {
    if($moc>=$mop) {
        $grp = ($moc/$mop);
        $grf = ($grp - 1);
        return $grf;
    }
    else if($moc<$mop) {
        $grp = ($mop/$moc);
        $grf = (1 - $grp);
        return $grf;
    }
}

我输入的值来自用户填写的表单。在这种特殊情况下,传入的数字是fb_growth($fbfi1, $fbfi2);,其中$fbfi1等于字符串"1719223",$fbfi2等于字符串"1859867"。在这种情况下,$moc小于$mop,因此1719223除以1859867,1859867应该返回1.08180672315,但它返回1,然后减去1得到0。我想最终得到的是"-.08180672315",这将是我的增长百分比,但我无法得到这样的结果。如果I echo ("1859867"/ "1719223");,那么我得到1.08180672315,但当字符串保持在变量中并且I echo ("$fbfi2" / "$fbfi1");时,那么我获得1。

我尝试为$grf和$fbfi1&2和相同的结果。如果我将$grf设置为全局并echo-gettype(),它会给我double或int,但我仍然得到相同的值:0。我可以在php设置中对此进行调整吗?或者我的设置有问题吗?我找不到任何文件。非常感谢您的帮助,谢谢!!

PHP进行自动铸造,请参阅类型杂耍手册。整数除法产生整数结果(因此产生1)。

在进行算术计算之前强制转换值:(float) $var

问题是。。。逗号在输入数字中!!我输入的是123456而不是123456。这就是你有时不小心复制粘贴的结果。。哇!不过,感谢大家的帮助,我学到了很多关于选角的知识!