Por que o DECODE da Oracle está me dando um valor diferente do NVL?

Esta consulta:

select nvl(0.75,0) from dual

me dá0.75 (numérico) mas esta consulta:

select decode(1,0,null,0.75) from dual 

me dá'.75' (corda).

Por quê?

Eu tentei corrigir isso alterando a segunda consulta para:

select decode(1,0,null,to_char(0.75,'0.99')) from dual

mas no meu código atual, o 0,75 será um campo (NÚMERO) que pode ter um número diferente de casas decimais e não devo adicionar / remover nada desse valor.

Alguma idéia sobre como corrigir o problema zero ausente, mas ainda suportar todos os tamanhos decimais possíveis?

questionAnswers(4)

yourAnswerToTheQuestion