После короткого сеанса Google я обнаружил, что printf
, кажется, может выполнить эту работу, по крайней мере, в bash (не удалось найти онлайн-переводчика, который делает ksh).
printf "%0.f\n" 4.51
5
printf "%0.f\n" 4.49
4
Код в: http://ideone.com/nEFYF
Примечание: perl может быть излишним, как говорит Мариус, но вот способ perl:
Модуль perl Math :: Round кажетсясправиться с работой.
Однострочник:
perl -MMath::Round -we 'print round $ARGV[0]' 12.49
Сценарий:
use v5.10;
use Math::Round;
my @list = (3.49, 2.9, 4.1, 23.51, 982.4999);
say round $_ for @list;
Сценарийвывод:
3
3
4
24
982