Commodore 64 > Programmazione, Grafica e Musica
[basic] Convertire Un Numero In Stringa
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
Vai alla versione completa