Remova as vírgulas nas chamadas printf
:
val1=$(printf "%f" "$debit_amount")
val2=$(printf "%f" "$credit_amount")
Não é necessário delimitar os argumentos por vírgula. É por isso que a entrada para bc
ficou assim:
78531178.060004,-3223649.620000,
qual bc
não pode interpretar.
BTW : você não deve usar os backticks ( '
) mais :
final="$(echo "$val1 - $val2" | bc)"