四捨五入


 Math::Roundモジュールを使うと簡単です。
 モジュールを使わない場合は、0.5を足してからintを使います。
 小数点以下を四捨五入する場合にはそのままintを使い、小数点以下n桁を残して四捨五入する場合には10のn乗をかけてからintを使い10のn乗で割ります。
# 四捨五入
use strict;
use warnings;
use Math::Round;

print round(-198.25), "\n"; # -198
print round(198.25), "\n";  # 198
print round(198.75), "\n";  # 199
# 指定の桁で四捨五入
use strict;
use warnings;
use Math::Round;

print nearest(1, 198.25), "\n";    # 198
print nearest(0.1, 198.25), "\n";  # 198.3
print nearest(10, 198.25), "\n";   # 200
print nearest(0.1, -198.25), "\n"; # -198.3
# 四捨五入
use strict;
use warnings;

my $foo = 13.6;
print int($foo + 0.5), "\n"; # 14
# 指定の桁で四捨五入
use strict;
use warnings;

print round(198.25, 0), "\n";  # 198
print round(198.25, 1), "\n";  # 198.3
print round(198.25, -1), "\n"; # 200
print round(-198.25, 1), "\n"; # -198.3

sub round {
    my $val = shift;    # 四捨五入する数
    my $col = shift;    # 小数点以下のどこまで残すか
    my $r = 10 ** $col;
    my $a = ($val > 0) ? 0.5 : -0.5;
    return int($val * $r + $a) / $r;
}

関連項目

int関数
切り捨て
切り上げ