Commodore 64 > Programmazione, Grafica e Musica

[basic] Convertire Un Numero In Stringa

(1/4) > >>

Roberto:
 Sto facendo delle operazioni con i numeri casuali e le stringhe. Alla fine però ho dei problemi. Chi mi aiuta a capire come funziona la conversione di un numero in una stringa? Provo a spiegarmi con l'esempio pratico.

Per prima cosa creo un numero casuale compreso in un range tra 1 e 999.999


--- Codice: ---x=int(rnd(1)*10^6)
--- Termina codice ---

Ovviamente questa linea mi restituisce risultati del tipo:

999999
999998
999997
...
...
...
...
5320
5319
5318
...
eccetera.

Successivamente, ho la necessità di convertire il numero precedentemente generato in una stringa, e per farlo utilizzo normalmente:


--- Codice: ---x$=str$(x)
--- Termina codice ---

(A questo punto sorge il problema.)

Supponiamo che il numero casuale sia di 6 cifre:

123456

la stringa corrispondente sarà:

"123456"

Ma se invece il numero generato casualmente è di 5 cifre:

12345

la stringa che viene generata sarà:

"[SPAZIO]12345"

Mentre, almeno personalmente, mi aspettavo un più logico:

"12345"

Senza spazi eccedenti.

Le domande sono due.
La prima è come mai si forma quello spazio.
La seconda è come riuscire a convertire il numero senza generare lo spazio.

Ultima cosa:
Ho trovato una soluzione che aggira il problema. IL guaio è che la routine in questione è lunga circa 20 linee di Basic: decisamente troppo per i miei gusti.

Spero che la domanda non sia di livello troppo infimo  :hail:

 :stordita:

djwiper:
 Puoi provare così?

10 A = 12345
20 A$ = STR$(A)
30 A$ = RIGHT$(A$,(LEN(A$) - 1))

Dovrebbe funzionare... Non lo posso controllare per te perchè devo scappere! Ciauz

Roberto:

--- Citazione da: "djwiper" --- Puoi provare così?

10 A = 12345
20 A$ = STR$(A)
30 A$ = RIGHT$(A$,(LEN(A$) - 1))

Dovrebbe funzionare... Non lo posso controllare per te perchè devo scappere! Ciauz
--- Termina citazione ---
Direi di si!
In pratica basta cancellare il primo carattere che è sempre uno spazio, giusto?
Ad ogni modo, non capisco come mai la conversione in stringa aggiunga quel famigerato "spazio".... :fagiano:  

iAN CooG:

--- Citazione da: "Ready64" --- Ad ogni modo, non capisco come mai la conversione in stringa aggiunga quel famigerato "spazio".... :fagiano:
--- Termina citazione ---
metti -1 e capirai :=)

djwiper:
 
--- Citazione da: "iAN CooG/HF" ---
--- Citazione da: "Ready64" --- Ad ogni modo, non capisco come mai la conversione in stringa aggiunga quel famigerato "spazio".... :fagiano:
--- Termina citazione ---
metti -1 e capirai :=)
--- Termina citazione ---
Già.... Hai proprio ragione! Quindi sarebbe più corretto scrivere:

10 A = 12345
20 IF A < 0 THEN GOTO 40
25 A$ = STR$(A)
30 GOTO 60
40 A$ = STR$(A)
50 A$ = RIGHT$(A$,(LEN(A$) - 1))
60 REM NUMERO CONVERTITO

giusto? Così si evita di tagliare un carattere "-" qualora il numero fosse negativo!

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa