ホームページ  >  記事  >  バックエンド開発  >  数値の丸めの問題

数値の丸めの問題

WBOY
WBOYオリジナル
2016-06-23 13:46:411049ブラウズ

たとえば $a=1.2;
echo $a; // ここでは 1.5 として表示したい
$a=1.6;
echo $a; // ここでは 2 として表示したい

つまり、 $a の小数点以下の値が 5 未満 (0 を除く) の場合は 5 と表示され、小数点以下の値が 5 より大きい場合は通常通り四捨五入されます


ディスカッションへの返信(ソリューション)まだ 1.5 と表示されます

$n = 1.2;//$n = 1.6;$t = explode('.', "$n");$n = $t[1]{0} < 5 ? $t[0] + .5 : round($n);echo $n;

このメソッドを使用してください


要件を明確に記述する必要があります

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);//1echo test(1.11);//1.5echo test(1.5);//2echo test(1.6);//2
$n = 1.2;//$n = 1.6;$t = explode('.', "$n");$n = $t[1]{0} < 5 ? $t[0] + .5 : round($n);echo $n;

function fn($num) {

return ceil($num * 2) / 2 }



+1

1 -> 1

1.1 -> 1.5
1.2 -> 1.5
1.4 -> 1.5 1.5 -> 2

1.6 -> 2

1.7 -> 2

1.8 -> 2

1.9 -> 2
2.1 -> 2.5

クラシック! ! ! ! !
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。