【PHP初心者向け】 数値を四捨五入する方法

こんにちは。
季節の変わり目は体調を崩しやすいので気をつけてくださいね、裕です!

プログラミングをしているときに「四捨五入」が必要になることがあります。

そこで今回はPHP初心者に向けて、
数値を四捨五入する round
について解説します。

ぜひ、読んでみて理解を深めてみて下さいね。

roundの引数を解説

まずroundの基本的な書き方です。

round (float $val [, int $precision =0 [ int $mode = PHP_ROUND_HALF_UP ] ]  ): float

val

丸める(四捨五入する)数字。(必須)

precision

オプションで指定する丸める(四捨五入する)桁数。

初期値:0

mode

定数を使い丸めモードを設定します。

返り値

precisionで与えられた精度に丸められた値をfloatで返します。

roundの書き方

基本的な検索の仕方

<?php

var_dump(round(1.1));

var_dump(round(1.2));

var_dump(round(1.3));

var_dump(round(1.4));

var_dump(round(1.5));

var_dump(round(1.6));

var_dump(round(1.7));

var_dump(round(1.8));

var_dump(round(1.9));

var_dump(round(1.0));

?>

結果は下記になります。

float(1) //1.1

float(1) //1.2

float(1) //1.3

float(1) //1.4

float(2) //1.5

float(2) //1.6

float(2) //1.7

float(2) //1.8

float(2) //1.9

float(1) //1.0

第二引数を指定しない場合、小数点以下は0で丸められました。

小数点以下の桁数を指定する

第二引数を指定します

<?php

$num = 153.548;

var_dump(round($num, 3));

var_dump(round($num, 2));

var_dump(round($num, 1));

var_dump(round($num, 0));

var_dump(round($num, -1));

var_dump(round($num, -2));

var_dump(round($num, -3));

?>

結果は下記になります。

float(153.548) //3の場合 小数点以下第3位まで

float(153.55) //2の場合 小数点以下第2位まで

float(153.5) //1の場合 小数点以下第1位まで

float(154) //0の場合 小数点なし

float(150) //-1の場合 整数第1位の位

float(200) //-2の場合 整数第2位の位

float(0) //-3の場合 整数第3位の位

第二引数は正の数の場合小数点以下の方向に桁数が増え

負の数の場合小数点以上の方向の数字を丸め(四捨五入)ます

第三引数を使って四捨五入する

<?php

$num = 10.5;

var_dump(round($num, 0,PHP_ROUND_HALF_UP));

var_dump(round($num, 0,PHP_ROUND_HALF_DOWN));

var_dump(round($num, 0,PHP_ROUND_HALF_EVEN));

var_dump(round($num, 0,PHP_ROUND_HALF_ODD));

?>

結果は下記になります。

float(11) //PHP_ROUND_HALF_UP 端数が5(半分)の場合、 数値をゼロから離れる方向に丸めます。 

float(10) //PHP_ROUND_HALF_DOWN 端数が5(半分)の場合、 数値 をゼロに近づく方向に丸めます。float(10) //PHP_ROUND_HALF_EVEN 端数が5(半分)の場合、数値 をもっとも近い偶数に丸めます。

float(11) //PHP_ROUND_HALF_ODD 端数が5(半分)の場合、数値 をもっとも近い奇数に丸めます。

このように少し複雑の条件も第三引数に定数を利用することにより設定することができます。

まとめ

いかがでしたか?

今回は数値を四捨五入する

「round」について、解説しました。

これで数値を四捨五入することができますね。

是非使ってみて下さい。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?