PHP number_format()和round()无法生成有效的上限结果

PHP number_format()和round()无法生成有效的上限结果,php,rounding,Php,Rounding,我建立的日志没有报告正确的数字 0.01%-1362不正确% 9.13%-814正确 0.66%-59正确 这是我的密码 $count2 = mysql_num_rows($result2); $n = 100/$count2*number_format($value); echo round($n,2).'%'; number\ U格式将添加逗号之类的字符,这会把整个过程搞得一团糟,因为它不需要字符串。在使用如下圆形后,尝试使用数字\u格式: $count2 = mysql_num_rows

我建立的日志没有报告正确的数字

0.01%-1362不正确%

9.13%-814正确

0.66%-59正确

这是我的密码

$count2 = mysql_num_rows($result2);
$n = 100/$count2*number_format($value);
echo round($n,2).'%';
number\ U格式将添加逗号之类的字符,这会把整个过程搞得一团糟,因为它不需要字符串。在使用如下圆形后,尝试使用数字\u格式:

$count2 = mysql_num_rows($result2);
$n = 100/$count2*$value;
echo number_format(round($n,2)).'%';

“数字格式”是在大于1000的值中添加一个逗号,然后乘以一个字符串。

从两行中删除数字格式纠正了问题。

您过早地使用了数字格式。number\u格式返回一个字符串。。然后你就把它取整了。一般来说,直到最后才进行任何格式化或舍入。舍入不起作用,它只给出整数1、2、3、9、22、34等,而不是12.02、5.23。不过,它确实解决了另一个问题。@John尝试将$count和$value转换为浮点数吗?e、 g.100.00/float$count2*float$valueI删除了数字格式,现在可以正常工作了。我不知道为什么我用它,没有一个数字可能会高于100%的日志!这应该是公认的答案。你问题的问题是乘以一个字符串。