当前位置: 代码迷 >> PHP >> 数字四舍五入的有关问题
  详细解决方案

数字四舍五入的有关问题

热度:208   发布时间:2016-04-28 18:21:02.0
数字四舍五入的问题
比如$a=1.2;
echo $a;    //这里我要让它显示为1.5

$a=1.6;
echo $a;    //这里我要让它显示为2

也就是说,当$a的小数点后面的值小于5时(不包括0),就按5来显示,小数点后面的值大于5时就按正常的四舍五入
------解决思路----------------------

function test($val){
$x=explode('.',sprintf("%.1f", $val));
$a=$x[0];
$d=$x[1];
if($d>0 && $d<5){
$r=$a+0.5;
}else{
$r=round($val);
}
return $r;
}

echo test(1);//1
echo test(1.11);//1.5
echo test(1.5);//2
echo test(1.6);//2

------解决思路----------------------
需求要说清楚
for($i=1; $i<2; $i+=0.1)
  printf("%.1f : %s\n", $i, ceil($i * 2) / 2);
1.0 : 1
1.1 : 1.5
1.2 : 1.5
1.3 : 1.5
1.4 : 1.5
1.5 : 2
1.6 : 2
1.7 : 2
1.8 : 2
1.9 : 2

  相关解决方案