Podrías usar un bucle en el que vas multiplicando por 10 el número hasta que dicho numero sea mayor que 1. El número de iteraciones, será precisamente la escala.
Código Delphi
[-]
uses Math;
var iteraciones:integer;
numero, escala :extended;
begin
numero := 0.0003;
temp := numero;
iteraciones := 0;
while (numero * intpower(10, iteraciones) < 0 )do
inc(iteraciones );
escala := 1 / intpower(10, iteraciones);
Tiene algunos detalles que deberás controlar, pero más o menos es la idea.
Saludos.