切り上げ


 POSIXceilが用意されています。
 自分で作る場合は、+1してからintを使います。
 小数点以下を切り上げる場合にはそのままintを使い、小数点以下n桁を残して切り上げる場合には10のn乗をかけてからintを使い10のn乗で割ります。
 対象が負数の場合にはいきなりintを使います。
use POSIX qw(ceil);

$foo = ceil(10.5);  # 11
$bar = ceil(-10.5); # -10
$hoge = ceil(198.25, 0);	# $hoge = 199
$fuga = ceil(198.25, 1);	# $fuga = 198.3
$piyo = ceil(198.25, -1);	# $piyo = 200
$minus = ceil(-198.25, 1);	# $minus = -198.2
print "$hoge $fuga $piyo $minus\n";

sub ceil {
	my $val = shift;	# 切り上げる数
	my $col = shift;	# 小数点以下のどこまで残すか
	my $r = 10 ** $col;
	if ($val > 0) {
		my $tmp = $val * $r;
		if ($tmp == int($tmp)) {
			return $tmp / $r;
		} else {
			return int($tmp + 1) / $r;
		}
	} else {
		return int($val * $r) / $r;
	}
}

関連項目

int関数
切り捨て
四捨五入