Perl で四捨五入する

概要

四捨五入したい数値に 0.5を足して、整数部分だけを取り出す関数 int で整数部分を取り出します。

コードサンプル

$women = 30;
$children = 10;
$total = 89;

#ここが四捨五入計算
$rate_women = int ( $women / $total * 100 + 0.5 );
$rate_children = int ( $children / $total * 100 + 0.5 );

print "女性の割合は $rate_women % です。\n";
print "子供の割合は $rate_children % です。\n";

解説

「女性の場合」と「子供の場合」とどちらも全く同じことを行っています。

「$women / $total * 100」が四捨五入したい値です。
計算すると「30 ÷ 89 × 100 = 33.7079」となります。

四捨五入した値を得るためには、まず、0.5 を足します。
小数部分が 0.5 以上あれば、整数部分の1の位の数値が1つ上がります。0.5未満なら1の位は変わりません。

33.7079 に 0.5 を足すと 34.2079 になります。

0.5足した値の整数部分を int で切り出せば、四捨五入計算の完了です。

子供の場合

子供の場合は、「10 ÷ 89 × 100 = 11.236」です。
四捨五入した値は「11」になるはずです。

11.236 + 0.5 = 11.736 なので、整数部分を切り出すと期待通り「11」が得られます。