^^ I did something similar to that
rem -- Display score --
p1$=mid$(str$(score),1)
if val(p1$)<>0
sc1=val(p1$)
endif
p2$=mid$(str$(score),2)
if score<10
sc2=11
endif
if score>=10
sc2=val(p2$)
endif
p3$=mid$(str$(score),3)
if score<100
sc3=11
endif
if score>=100
sc3=val(p3$)
endif
p4$=mid$(str$(score),4)
if score<1000
sc4=11
endif
if score>=1000
sc4=val(p4$)
endif
p5$=mid$(str$(score),5)
if score<10000
sc5=11
endif
if score>=10000
sc5=val(p5$)
endif
p6$=mid$(str$(score),6)
if score<100000
sc6=11
endif
if score>=100000
sc6=val(p6$)
endif
p7$=mid$(str$(score),7)
if score<1000000
sc7=11
endif
if score>=1000000
sc7=val(p7$)
endif
sprite 28,65,9,sc1
sprite 29,80,9,sc2
sprite 30,95,9,sc3
sprite 31,110,9,sc4
sprite 32,125,9,sc5
sprite 33,140,9,sc6
sprite 34,155,9,sc7
My code uses a set of number sprites (i.e. 1.bmp, 2.bmp etc) and can support values up to 9,999,999
I used this to display the players score in a 2D game.