在PHP舍入中划分变量

时间:2012-03-10 12:23:16

标签: php division

我有一个简单的计算器脚本,用于计算facebook洞察力。

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

//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,它应该返回1.08180672315,但它返回1,然后减去1得到0.我想要最终得到的是' - .08180672315',这将是我的增长百分比,但我无法让它给我这个结果。如果我echo ("1859867"/ "1719223");然后我得到1.08180672315,但是当字符串保存在变量中并且我echo ("$fbfi2" / "$fbfi1");然后我得到1.

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

2 个答案:

答案 0 :(得分:2)

PHP执行自动转换,请参阅type juggling manual。整数除法产生整数结果(因此1)。

在进行算术运算之前投射值:(float) $var

答案 1 :(得分:0)

问题是......逗号是入门号码!!我输入了123,456而不是123456.这就是你有时不经意地复制和粘贴的结果。哇。感谢所有的帮助,我学到了很多关于铸造的知识!