операции с плавающей запятой в Linux с помощью утилиты expr - PullRequest
0 голосов
/ 15 октября 2018

Не уверен, но я не могу получить это.

38/1024 = 0.0371

Когда я выполняю: echo "scale=2; 15 / 0.0371" |bc, это дает мне результат:

404.31

Но,когда я ', выполняя: echo 'scale=2; 15/(38/1024)' |bc, вывод:

500.00

Почему есть разница в результатах.

Мне нужно, чтобы вывод был 404.31 из второй команды.

Спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Это потому, что ваша точность с плавающей точкой отличается во втором случае.

В первом случае вы используете 0.0371 для деления, тогда как во втором случае вы используете 38/1024 с точностью до 2 десятичных знаков, что дает 0.03.

Таким образом, фактически ваша фактическая команда во втором случае -

echo "scale=2; 15 / 0.03" |bc

, следовательно, другой вывод.

Если вы хотите получить тот же вывод, что и в шкале первого использования, то 4, например

echo "scale=4; 15/(38/1024)" |bc
...