2013-05-15 56 views
1

我有一些PHP代码将两个数字从mySQL数据库中分离出来,但它的计算不正确。当我分别回显$ comm和$total_fix时,数字是正确的。但是,当我回应两者的划分时,它不是正确的答案。这两个数字都是数据库中的DECIMAL(10,0)数据类型。下面是PHP代码PHP没有正确划分

$percent_comm = $comm/$total_fix; 
$percent_comm = number_format($percent_comm, 2, '.', ',');      
echo "<td align=\"center\">".$percent_comm."</td>"; 

这里$comm = 2700$total_fix = 75$percent_comm被计算为0.03当它应该是36

+1

如果你没有使用'number_format()'格式化数字,怎么办? – Xaltar

+1

你的代码没有问题。输入值可能是错误的。见http://codepad.viper-7.com/vPs8wn – Ranty

+0

如果你想要百分之百的东西,你应该乘以100. – Voitcus

回答

1

从我在您的评论中看到的情况来看,由于格式的原因,您将$ comm变量作为带逗号的字符串获取。我建议将格式化的字符串转换为有效的数字。

平均值,而我会建议更换此:

$comm = '2,700'; 
$comm = str_replace(',','',$comm); 

,从你的电话号码删除逗号。

+0

谢谢。这是了解未来的一个很好的解决方案。 – Stevenyc091

+0

不客气@Steve。我一直在寻找另一种方式来做到这一点。但是,显然这是最干净的一个。此外,如果这为你工作,不要忘记标记这个答案。 –

0

从变量名,你想知道$comm$total_fix百分比。您的代码差不多是否这样做:正确划分$comm/$total_fix,它正确地给你0.027。但是,你得到了它向后当你手工检查:36分2700/75(即$total_fix/$comm

但要获得一个百分比,乘以100师的结果的结果:

(75.0/2700) * 100 = 2.7 percent. 

这是你的代码应该得到什么。