vladsu Тоже самое, только передавать нужно целое число
На самом деле, речь шла только о натуральных числах, о рациональных и отрицательных числах не было сказано ни слова....
А если надо, чтобы отрицательные числа округлялись к меньшему десятку, то use roundABS
#!/usr/bin/perl
@digits=(-1.1,1.2,14.7,-23.5,49.5,-55.7,20.9,-70,-92,56,31,49,80);
print "Digit| rABS | ABS |\\n";
print "----- ------ -----\\n";
foreach $digit (@digits)
{
printf("%5.1f|%6d|%5d|\\n",$digit,roundABS(int($digit)),round(int($digit)));
}
sub round
{
return($_[0]-$_[0]%10+10*($_[0]%10!=0))
}
sub roundABS
{
return($_[0]-$_[0]%10+10*($_[0]%10!=0)*($_[0]>0))
}
Digit| rABS | ABS |
----- ------ -----
-1.1| -10| 0|
1.2| 10| 10|
14.7| 20| 20|
-23.5| -30| -20|
49.5| 50| 50|
-55.7| -60| -50|
20.9| 20| 20|
-70.0| -70| -70|
-92.0| -100| -90|
56.0| 60| 60|
31.0| 40| 40|
49.0| 50| 50|
80.0| 80| 80|