После быстрого взгляда на источник (см. bc_out_num()
, строка 1461) я не вижу очевидного способа печати начального 0
, если целая часть равна 0
. Если я что-то пропустил, это поведение не зависит от параметра, который можно изменить с помощью флага командной строки.
Краткий ответ: нет, я не думаю, что есть способ заставить bc
печатать числа так, как вы хотите.
Я не вижу ничего плохого в использовании sed
, если вы все еще хотите использовать bc
. Следующее выглядит не так страшно, ИМХО:
[me@home]$ echo "0.1 + 0.1" | bc | sed 's/^\./0./'
0.2
Если вы действительно хотите избежать sed
, то оба предложения eljunior и choroba довольно аккуратны, но они требуют подстройки, зависящей от значения, чтобы избежать конечных нулей. Это может или не может быть проблемой для вас.