Una idea .
Codigo:
digitos con 4 "digitos a mostrar
for a = digitos-1 to 0 step-1 " imprimimos el mas significativo primero
tem = Valor dig a
if tem <> 0 then print tem+"0" else print " "
next a
No se si está muy bien la sintaxis .
Uso esto para imprimir una frecuencia en un lcd , tambien lo pasé a uno grafico facilmente imprimiendo numeros grandes .
Lo pego y de momento te dara mas ideas .
Es que son las 6 AM , mis clusters de mi cerebro estan todabia en off , y no me veo capaz de pasarlo al basic
pero si te gusta lo hacemos en un periquete .
Codigo:
/****************************************/
/* Escribe Valor numerico al LCD */
/* Max 1 a 9 digitos */
/* ceros a la izquierda blancos */
/* puno de miles y millones */
/****************************************/
/* ejemplo : 341.000.780 1.886 23 */
void LCD_PUTUN (unsigned char Digitos , unsigned long valor)
{
unsigned char t1,i,wrote;
unsigned long k;
wrote=0;
for (i=Digitos-1; i>=1; i--)
{
switch(i){
case 8: k=100000000;
break;
case 7: k=10000000;
break;
case 6: k=1000000;
break;
case 5: k=100000; if (Digitos > 6){ if (wrote==1){ LCD_PUTCH(".");} else { LCD_PUTCH(" ");}} // millones
break;
case 4: k=10000;
break;
case 3: k=1000;
break;
case 2: k=100; if (Digitos > 3){ if (wrote==1){ LCD_PUTCH(".");} else { LCD_PUTCH(" ");}} // miles
break;
case 1: k=10;
}
t1=valor/k;
if((wrote)||(t1!=0)){LCD_PUTCH(t1+"0"); wrote=1;}
else LCD_PUTCH(" "); // Ceros izquierda blanco
valor-=(t1*k);
}
LCD_PUTCH( valor +"0");
}
Nada Marquitos , solo he sido un pelin mas rapido al darle 
Codigo:
symbol Digitos = 5 " digitos a mostrar , Max 9
dim Valor as word " segun necesidades
dim i as byte : dim wrote as bit
dim x as byte : dim y as byte : dim Ch as byte
IMPRIME:
x = 0 : y = 0 " coordenadas iniciales del digito mas significativo
wrote = 0
for i = Digitos - 1 to 1 step -1
if i = 5 and Digitos > 6 then " millones
if wrote = 1 then Ch = "." : else Ch = " "
gosub LCD_PUTCH
else if i = 2 and Digitos > 3 then " miles
if wrote = 1 then Ch = "." : else Ch = " "
gosub LCD_PUTCH
endif
Ch = Valor dig i
if Ch <> 0 or wrote = 1 then
Ch = Ch + "0" : wrote = 1
else
Ch=" " : " Ceros izquierda blanco
endif
gosub LCD_PUTCH " imprime digito
next i
Ch = Valor dig 0 + "0" : gosub LCD_PUTCH " imprime un digito a 0 como minimo
return
LCD_PUTCH: " imprime de izquierda a derecha
print at x,y , Ch
x = x + ancho del caracter o como lo tengas
return
No lo puedo provar .
La sintaxis la repasas tu vale ? aver si te sirve