Executando verificação de segurança...
Respondendo a [Não disponível] dentro da publicação As linguagens de programação não conseguem fazer esse simples calculo! Veja
1

Só pra explicar: segundo a documentação, em Oracle um literal numérico é do tipo NUMBER, que é um tipo que não tem os problemas de imprecisão dos números de ponto flutuante. Por isso o cálculo fica exato.

Mas só como curiosidade, se você colocar o sufixo d, os números passam a ser tipos de ponto flutuante, e aí os problemas de imprecisão aparecem:

SELECT to_char(128.23d - (118.23d + 10.00d), '9.9999999999999999999') result  FROM dual;

Formatei com várias casas decimais, senão ele só ia mostrar -0. Resultado:

                RESULT
----------------------
 -.0000000000000284217

Só pra mostrar a diferença, veja sem o sufixo d:

SELECT to_char(128.23 - (118.23 + 10.00), '9.9999999999999999999') result  FROM dual;

Resultado:

                RESULT
----------------------
  .0000000000000000000
Carregando publicação patrocinada...