Pessoal,
tivemos uns problemas com conversão de valores numéricos para texto, segue uma solução.

Problema:
Na conversão implicita ou explicita utilizando o Cast e o To_Char ao realizar a conversão de tipos Float ou Number que iniciem com 0,01 ou -0,01 acaba removendo o 0 ficando dessa forma: ,01 e -,01. Esses valores podemos encontrar em dados de latitude e longitude.

Solução:
Create Table Teste (Valor Float);

Insert Into Teste Values ('0,0918888888888889');
Insert Into Teste Values ('0,032');
Insert Into Teste Values ('-0,00616666666666667');
Insert Into Teste Values ('0,0773055555555556');
Insert Into Teste Values ('0,0776388888888889');
Insert Into Teste Values ('0,0865833333333333');
Insert Into Teste Values ('0,0356111111111111');
Insert Into Teste Values ('-0,133833333333333');
Insert Into Teste Values ('0,0956666666666667');
Insert Into Teste Values ('0,03725');
Insert Into Teste Values ('1,25');
Insert Into Teste Values ('-1,25');
Insert Into Teste Values ('10,25');
Insert Into Teste Values ('-10,25');
Insert Into Teste Values ('99,25');
Insert Into Teste Values ('-99,25');

Select Valor, Cast(Valor As Varchar2(20)) As Valor_Char1, To_Char(Valor) As Valor_Char2
From Teste;

O select abaixo corrige o problema:
Select Valor,
Case
When Substr(Cast(Valor As Varchar2(20)), 1, 1) = ',' Then
'0' || Cast(Valor As Varchar2(20))
When Substr(Cast(Valor As Varchar2(20)), 1, 2) = '-,' Then
'-0' || Substr(Cast(Valor As Varchar2(20)), 2, 20)
Else
Cast(Valor As Varchar2(20))
End As Valor_Char
From Teste;

— Criada uma função para facilitar.
Create Or Replace Function Fn_Convert_Char_With_Zero(Pnumber In Number) Return Varchar2 Is
-- Create: fernando franquini 'capin'
-- Problem: bug convert datatype number or float to char (function cast or to_char)
-- Sample: 0,0.. or -0,0..
-- Date: 29/09/2011
Wresult Varchar2(20);
Begin
Select Case
When Substr(Cast(Pnumber As Varchar2(20)), 1, 1) = ',' Then
'0' || Cast(Pnumber As Varchar2(20))
When Substr(Cast(Pnumber As Varchar2(20)), 1, 2) = '-,' Then
'-0' || Substr(Cast(Pnumber As Varchar2(20)), 2, 20)
Else
Cast(Pnumber As Varchar2(20))
End
Into Wresult
From Dual;
Return(Wresult);
Exception
When Others Then
Return Null;
End Fn_Convert_Char_With_Zero;

Select Valor, Fn_Convert_Char_With_Zero(Valor) As Valor_Char
From Teste;


Att,
capin