如果value
为2
且counter
为11
,则以下代码为何? $rating
会是什么?
$rating = (@round($rs[value] / $rs[counter],1)) * 10;
完整的代码如下。
function getRating(){
$sql= "select * from vote";
$result=@mysql_query($sql);
$rs=@mysql_fetch_array($result);
$rating = (@round($rs[value] / $rs[counter],1)) * 10;
echo $rating;
}
答案 0 :(得分:3)
如果$rs['value']
= 2且$rs['counter']
= 11则
2/11 = .18181818181818
round(.181818181, 1) = .2 // This uses the ever popular rule of thumb.
.2 * 10 = 2
我相信。如果没有,我真的搞砸AP统计......
BTW RTM。 :P
答案 1 :(得分:3)
嗯,这实际上取决于$rs[value]
和$rs[counter]
包含的内容,而不是value
和counter
本身。但我的问题是:
尝试时它返回了什么?
令人惊讶的是,这可能会给你正确答案,而不是让我们中的一个人为你做这件事。
回应你的评论:
我只是在检查我是否做得对。我无法弄清楚为什么我在代码中添加了“,1”。我完全忘记了,所以我想检查,也许这应该是我的问题?
也许,但是在StackOverflow上有一个充足的先例,随着时间的推移,被问到的问题经常被所谓的问题所取代。这不是问题,最好的帮助台式人员(包括像我一样照顾无数家庭电脑的人)是能够在不侮辱提问者情报的情况下梳理真实问题的人: - )
在任何情况下,round函数的1
参数指定使用多少小数位数来舍入数字,所以:
round (1.2341234,0) = 1
round (1.2341234,1) = 1.2
round (1.2341234,2) = 1.23
round (1.2341234,3) = 1.234
round (1.2341234,4) = 1.2341
等等。
答案 2 :(得分:0)
您是否尝试过将文字值放入其中?
$rating = round(2 / 11,1) * 10;
var_dump($rating);
0.18181 * 10 == 1.8181
,正在向上舍入到2
编辑:
此外,round()
上的错误抑制?真? $rs[value]
应为$rs['value']