小数点以下の金額を切り上げるPerlプログラム

小数点以下の金額を切り上げるPerlプログラムを作成してみましょう。金額の割り算をしたときの端数処理に使えます。

たとえば、買主・売主の負担する金額の合計が9800円で買主の負担が「33/365」だったとしましょう。割り算をすると割り切れません。

このような場合に、小数点以下を、切り捨てるか、切り上げるかどちらの処理を選択しますが、今回は切り上げる場合を考えてみましょう。

小数点以下の金額を切り上げる

小数点以下の金額を切り上げるには、int関数を使用した後に、1を加えます。

use strict;
use warnings;

# 金額 (886.027397260274)
my $price = 9800 * (33/365);

# 小数点以下の金額を切り上げる(887)
my $price_cut = int($price) + 1;

# 結果を出力
print "$price_cut\n";

このプログラムは、コピー&ペーストして、PerlBanjoで、すぐに試すことができます。

価格がマイナスの場合にも切り上げるには?

損失を意味する、マイナスの価格を使っている場合が、あるかもしれません。このような場合に、上記のプログラムを実行すると、切り下げられてしまいます。「-886.027397260274」は「-885」になります。

これは、望んでいる処理ではないはずです。以下に、価格がマイナスの場合にも、正しく動くプログラムを提示しておきます。

三項演算子を利用して、価格が0より大きい場合は、上記の処理を、価格が0より小さい場合は「-1」をしています。

use strict;
use warnings;

# 金額 (886.027397260274)
my $price = -9800 * (33/365);

# 小数点以下の金額を切り上げる(-887)
my $price_cut = $price > 0 ? int($price) + 1 : int($price) - 1;

# 結果を出力
print "$price_cut\n";

このプログラムは、コピー&ペーストして、PerlBanjoで、すぐに試すことができます。

関連情報