Maison  >  Article  >  développement back-end  >  数字四舍五入的有关问题

数字四舍五入的有关问题

WBOY
WBOYoriginal
2016-06-13 12:08:58939parcourir

数字四舍五入的问题
比如$a=1.2;
echo $a;    //这里我要让它显示为1.5

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

也就是说,当$a的小数点后面的值小于5时(不包括0),就按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 />

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn