需要修改数量的值

时间:2013-09-05 22:30:10

标签: php post

我需要$ 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] . " ");
    }
}

1 个答案:

答案 0 :(得分:1)

我得到了$result = floor(100*ceil(($_POST['val'][$i]*0.05)*9)/9)/100;

步进0.11应该是(大致)1/9,而不是1/11。

  • 将post值乘以0.05
  • 乘以9,向上舍入(ceil),除以9得到我们的实际值
  • 通过将小数点向右移动两个位置来截断小数,删除剩余部分并将其移回。

编辑:感谢Greg Hewgill的捕获;用地板功能代替圆形。似乎PHP没有截断函数,并且转换似乎比一些更多的数字转移更加混乱。