Não sou um especialista em bc (que é muito complexo), talvez por isso, noto algumas coisas estranhas (mas estranhas pq não conheço o motivo, mas com certeza tem explicação). Veja esses exemplos:
$ echo '5.0 * 2.0' | bc # Usou a qtd de decimais dos operandos
10.0
$ echo '5.0 / 2.0' | bc # Não usou a qtd de decimais dos operandos
2
$ echo 'scale=2; 5.000 / 2.0001' | bc # Não usou a qtd de decimais dos operandos
2.49
$ echo 'scale=2; 5.000 * 2.0001' | bc # Usou a qtd de decimais dos operandos
10.0005
Como nunca mergulhei fundo para descobrir o porquê disso, dou uma mutretada e no teu caso, substituiria as linhas de echo onde vc imprime as 2 variáveis, pela linha seguinte:
LANG=C printf "Limite 1=%.2f\nLimite 2=%.2f\n" $LIMITE_COMPRA_01 $LIMITE_COMPRA_02