数値の丸めの問題
例 $a=1.2;
echo $a; //ここでは 1.5 と表示したい
$a=1.6;
echo $a; / ここでは2と表示させたい
つまり、$aの小数点以下の値が5未満(0を除く)の場合は5を押すと表示され、値が表示されたら5を押します。小数点が 5 より大きい場合は、通常の四捨五入
を押します-----解決策のアイデア----------------------
<br />function test($val){<br /> $x=explode('.',sprintf("%.1f", $val));<br /> $a=$x[0];<br /> $d=$x[1];<br /> if($d>0 && $d<5){<br /> $r=$a+0.5;<br /> }else{<br /> $r=round($val);<br /> }<br /> return $r;<br />}<br /><br />echo test(1);//1<br />echo test(1.11);//1.5<br />echo test(1.5);//2<br />echo test(1.6);//2<br />
for($i=1; $i<2; $i+=0.1)<br /> printf("%.1f : %s\n", $i, ceil($i * 2) / 2);<br />
1.0 : 1<br />1.1 : 1.5<br />1.2 : 1.5<br />1.3 : 1.5<br />1.4 : 1.5<br />1.5 : 2<br />1.6 : 2<br />1.7 : 2<br />1.8 : 2<br />1.9 : 2<br /><br />