我需要$ N的值为0.05,但它必须总是向上舍入到最接近的0.11,0.22,0.33,0.44,0.55,0.66,0.77,0.88或1(0.99)。这意味着如果值为2,则显示为(0.11),如果是1,则显示为(0.11),但如果为8,则为(0.44)。我完全不知道这是如何运作的,自己查找并没有让我走得太远。
$N = count($_POST['val']);
if(empty($_POST['val'])){
echo "Please select at least one check box!";
}else{
$N = floor(100*ceil(($_POST['val'][$i]*0.05)*9)/9)/100;
echo("$N items(s) selected!: ");
for($i=0; $i < $N; $i++){
echo($_POST['val'][$i] . " ");
}
}
答案 0 :(得分:1)
我得到了$result = floor(100*ceil(($_POST['val'][$i]*0.05)*9)/9)/100;
步进0.11应该是(大致)1/9,而不是1/11。
编辑:感谢Greg Hewgill的捕获;用地板功能代替圆形。似乎PHP没有截断函数,并且转换似乎比一些更多的数字转移更加混乱。