Вы можете решить эту проблему с помощью следующего «kludge»:
a=3.2222222222
b=24.30123
foo=$(bc <<< "x = $a * $b; scale=2; (x * 100) / 100;")
echo $foo
Этот код распечатает следующий вывод:
78.30
Идея в том, что результат вычисления (x * 100) / 100
будет таким же, как и $a * $b
(78.303963332793306
), но масштаб, который будет применен к нему на этот раз, будет равен 2, что, по сути, будет усекать все, что у вас есть, после двух десятичных знаков, делая его 78,30.
По поводу того, что происходит со шкалой числа, полученного в результате умножения двух других чисел, см. Ответ Дж. Ф. Фергюсона.
Код, на самом деле, можно сделать еще короче:
foo=$(bc <<< "scale=2; ($a * $b) / 1")
Это потому, что новое число, которое вы получите, это gong для наследования глобальной шкалы 2, которую вы специально установили.