Уберите запятые в printf
звонках:
val1=$(printf "%f" "$debit_amount") val2=$(printf "%f" "$credit_amount")
Не нужно разделять аргументы запятыми. Вот почему вход bc
выглядит так:
78531178.060004,-3223649.620000,
который bc
не может интерпретировать.
КСТАТИ : Вы не должны больше использовать backticks ( `
) :
final="$(echo "$val1 - $val2" | bc)"