Я использую qalculate в качестве своего повседневного калькулятора, и это здорово! Достаточно просто ввести что-то вроде:
(1+10^(-17.2/20)) / (1-10^(-17.2/20))
и получить правильный ответ:
1.320289
Но попытка заставить bc выполнять такие вычисления в сценарии bash разочаровывает. Поиск Google выдает много страниц, демонстрирующих простейшие математические примеры с использованием bc, но я еще не нашел ни одной страницы, посвященной выполнению более сложных вычислений. Когда я набираю в CL следующее:
echo 'scale=50; (1+10^(-17.2/20)) / (1-10^(-17.2/20))' | bc -l
Я получаю следующие предупреждения-ошибки:
Runtime warning (func=(main), adr=25): non-zero scale in exponent
Runtime warning (func=(main), adr=44): non-zero scale in exponent
Runtime error (func=(main), adr=46): Divide by zero
Если я попробую что-то подобное, но немного проще, например:
echo '(1-10^(-17.2/20))' | bc -l
Я получаю ответ, но он неправильный и сопровождается предупреждением.
Runtime warning (func=(main), adr=18): non-zero scale in exponent
0
С чем у bc могут быть проблемы, или, скорее, что я делаю неправильно, чтобы заставить bc правильно выполнять эти вычисления?