sub trunc {
my $num = shift;
my $dig = shift;
$dig = 2 unless defined $dig;
my $tmp_num;
if($num =~ /\\./){
if($dig){
if(length(substr($num,(index($num,\'.\')+1))) > $dig){
$tmp_num = substr($num,0,(index($num,\'.\')+$dig+1));
$dig = substr($num,(index($num,\'.\')+$dig+1),1);
if($dig >= 5){
my $tmp = "0.".("0" x (length(substr($tmp_num,index($tmp_num,\'.\')))-2));
$tmp.="1";
$tmp_num+=$tmp;
}
$num = $tmp_num;
}
} else {
$dig = substr($num,(index($num,\'.\')+1),1) >= 5?1:0;
$num =~ s/\\..*$//;
$num+=$dig;
}
}
return $num;
}
- тоже вариант.
Узадж: trunc($num[,n]), где n - до какого разряда после запятой нужно округлить. По умолчанию n = 2.