Ahí habría que ser más preciso con las especificaciones de la representación. Normalmente te viene dada la cantidad de dígitos tanto del exponente como de la mantisa. En ciencias la mantisa tiene 1 entero, pero en informática está entre 0 y 1
Deduciendo lo que escribiste, aparentemente la representación que usas es una mantisa > 1 y < 10, con 2 dígios de exponente con signo. No se vé previsión para el signo de la mantisa, y el prefijo NUM no sé que significado puede tener, pero no tiene una aplicación general, debe ser algo específico a tu aplicación.
Num2Sci( nNumero )
nExp:= 0
nMantisa:= nNumero
While Abs( nMantisa ) > 10
nExp ++
nMantisa /= 10
EndDo
While Abs( nMantisa ) < 1
nExp --
nMantisa *= 10
EndDo
Return StrTran( Str( nMantisa, 12, 10 ) + 'E' +Str(nExp,3), ' ', '+' )
Lo del return lo ajustas a las especificaciones que te den, igual que añadirle el 'NUM' al final.
http://es.wikipedia.org/wiki/Notaci%C3% ... %C3%ADfica
un saludo,
Carlos