小数点以下の金額を切り上げる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で、すぐに試すことができます。