Во-первых, попытка выполнить арифметику с плавающей точкой с bc(1)
без использования флага -l
обязательно даст вам несколько забавных ответов:
sarnold@haig:~$ bc -q
3.5 * 3.5
12.2
sarnold@haig:~$ bc -q -l
3.5 * 3.5
12.25
Во-вторых, $((...))
- это попыткаделать арифметику в своей оболочке;ни мои bash
, ни dash
не могут обрабатывать числа с плавающей запятой.
Если вы хотите выполнить арифметику в вашей оболочке, обратите внимание printf(1)
, а также (возможно) встроенную в вашу оболочку printf
функция.Если вы хотите сделать арифметику в bc, обратите внимание на специальную переменную scale
.