Разница в результате echo и printf

Почему я вижу разницу в результатах для следующего кода:

read a
printf "%.3f\n" $(bc -l <<< "$a")

РЕЗУЛЬТАТ: 17.929 и

read a
echo "scale=3; $a" | bc -l

РЕЗУЛЬТАТ: 17.928

Мое входное выражение - 5 + 50 * 3/20 + (19 * 2) / 7 .

Кажется, они делают то же самое, но конечный результат отличается. Почему?

Какие изменения (используя echo ) я могу внести во второй фрагмент выше, чтобы получить тот же результат, что и первый фрагмент?

0
03.09.2017, 23:40
1 ответ

Это не разница между echoи printf, а разница между обработкой чисел printfи . до н.э..

Я предполагаю, что printfокругляет последнюю цифру в большую сторону, а bcэтого не делает, а просто выводит цифры в соответствии с расчетом.

Вы можете проверить это, если оба подхода выводят больше цифр.

1
28.01.2020, 02:45

Теги

Похожие вопросы