我有以下代码:
<div style='width:635px;height:20px;'>
<div style='float:left;margin-top:1px;margin-bottom:1px;width:".$neg."%;height:18px;background-color: #BF4F4C;'></div>
<div style='float:left;margin-top:1px;margin-bottom:1px;width:".$pass."%;height:18px;background-color: #E37A0D;'></div>
<div style='float:left;margin-top:1px;margin-bottom:1px;width:".$pos."%;height:18px;background-color: #9ABB59;'></div>
</div>
您可以看到 '%' 是一个 PHP 变量 - 由于四舍五入,有时这等于 101%,然后最后一个柱线放在前两个柱线下面而不是旁边。 无论如何要阻止这种情况?
小提琴:http://jsfiddle.net/jVter/
PHP:
$pos = number_format(($row[1]/$row[0])*100,0);
$pass = number_format(($row[2]/$row[0])*100,0);
$neg = number_format(($row[3]/$row[0])*100,0);
进一步的代码(这是一个多查询):
SELECT COUNT( ". $r ." ) AS Total,
(SELECT COUNT( ". $r ." ) FROM tresults WHERE ". $r ." >=750) AS Engaged,
(SELECT COUNT( ". $r ." ) FROM `tresults` WHERE ". $r ." >=450 AND ". $r ." <=749) AS Passive,
(SELECT COUNT( ". $r ." ) FROM `tresults` WHERE ". $r ." <=449) AS Disengaged
FROM `tresults`
$pos = number_format(($row[1]/$row[0])*100,0);
$pass = number_format(($row[2]/$row[0])*100,0);
$neg=100-$pos-$pass
如果您只是想获取整数值,请尝试使用 floor() 而不是引入舍入的 number_format()。
如果您尝试获取浮点值,则需要确保数字之和为 100。您不显示生成$row
的代码,因此很难为您提供有关此的建议。