Почему я вижу разницу в результатах для следующего кода:
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 ) я могу внести во второй фрагмент выше, чтобы получить тот же результат, что и первый фрагмент?
Это не разница между echo
и printf
, а разница между обработкой чисел printf
и . до н.э.
.
Я предполагаю, что printf
округляет последнюю цифру в большую сторону, а bc
этого не делает, а просто выводит цифры в соответствии с расчетом.
Вы можете проверить это, если оба подхода выводят больше цифр.