HOME   入り口   MENU


No24.くるくるっと丸めるぞ ----切上げ、切捨て、四捨五入




計算をすると出てくる小数点。
切り上げとか切捨てとか四捨五入がしたいときがありますよね?
PHPにはちゃーんとそのための関数が用意されています。(^_^)

切上げ 値=ceil(元値);
切捨て 値=floor(元値);
四捨五入 値=round(元値);

↑それぞれの関数です。
では実際にやってみましょーっ!
<?php
$age=5.1;
$sage=2.8;
$gonyu=7.4;
$age=ceil($age);
$sage=floor($sage);
$gonyu=round($gonyu);
echo $age;
echo $sage;
echo $gonyu;
?>

とやると
6
2
7
となり
切上げ切捨て四捨五入されていることが分かりますね。(^_^)

・・・・え?

整数値じゃなくて、少数点以下第x値で丸めたいんだよ?
・・・・・・・・・・・・
えーと、えーと。困ったな。
実はceil,floor,roundにはその引数が無いんです。
こんなに関数が充実しているPHP・・なのにのに何故なんだろう??

でも大丈夫。ちょっとした小技を使いましょう(^o^)丿

例えば小数点以下第3位を四捨五入して第2位まで求める場合
<?php
$value=5.136;
$value=$value*100;
$value=round($value);
$value=$value/100;
echo $value;
?>

とやると
5.14
と小数点以下第3位を四捨五入して第2位まで求められました。
分かりにくいかもしれないのでちょっと説明を(^_^)

$value=$value*100; で 5.136→513.6 にします。
$value=round($value); で四捨五入するので 513.6→514 になります。
$value=$value/100; で100掛けたので100で割って 5.14 となるのです。

同じように
小数点以下第2位を四捨五入して第1位までの場合は10掛けて、丸め処理をして、10で割る。
小数点以下第4位を四捨五入して第3位までの場合は1000掛けて、丸め処理をして、1000で割る。
という風にやります。

ちょっと、めんどうですね。(笑)

サンプル: こう書くと   ==>    こうなる!

丸め処理です。


(オマケ)
上の例では説明し易いように1行ずつ処理しましたが
$value=1.234567;
$value=round($value*10000)/10000;
のようにやればスッキリしますね♪
値は
1.2346
となります。











  HOME