Scusate, magari la domanda è abbastanza insulsa, ma sono molto confusa. Nel linguaggio c un array di char può leggere un numero del tipo: 12.54? Grazie mille on anticipo!

chiesto 17 Gen '15, 18:35

miriaspazzol's gravatar image

miriaspazzol
15137

chiuso 17 Gen '15, 19:47

enzoge's gravatar image

enzoge
4.7k253987

La domanda è stata chiusa con il seguente motivo «Altro: domanda generica che non riguarda problemi indirizzabili ad Ubuntu» da enzoge 17 Gen '15, 19:47


Un array non legge numeri in nesssun caso. http://it.wikipedia.org/wiki/Array Un array di char solitamente si crea per memorizzare stringhe, ovvero una serie di caratteri ASCII. Ad esempio "ciao" è una stringa. Se tu vuoi inserire la stringa "12.54" dentro una array di char, certo puoi farlo ma non è un numero, è una serie di caratteri ASCII per cui non potrai usarla per fare conti. Se vuoi memorizzare numeri decimali, che siano effettivamente numeri allora devi usare il tipo float o il tipo double. Ad esempio:

char stringa[10]="12.54";
float numeroDecimale;

numeroDecimale=atof(stringa);
printf("La stringa: %s\n Il numero: %f\n", stringa, &numeroDecimale);

La funzione atof converte una stringa che rappresenta un numero nel numero effetivo. Dalla stampa noterai che la stringa viene stampata esattamente così com'è, mentre il numero verrà stampato con vari 0 alla fine che matematicamente non variano il valore del numero.

coll. permanente

ha risposto 17 Gen '15, 19:43

andrea993's gravatar image

andrea993
6535

modificato 17 Gen '15, 19:50

Tecnicamente si, ma sarebbe rappresentato come stringa (vettore di caratteri). Poi se ti serve memorizzarlo così o come float, dipende da cosa vuoi fare.

coll. permanente

ha risposto 17 Gen '15, 19:45

dslul's gravatar image

dslul
9632416

Sì, ma se lo leggi come insieme di caratteri non lo puoi usare direttamente per fare calcoli.
Esempio:

char testo[20];
printf("digita un testo: ");
scanf("%s", testo);
printf("hai digitato %s\n", testo);

quando esegui il programma, se a terminale digiti:

12.4

l'array di caratteri testo contiene la sequenza di caratteri '1'. '2. '.', '4' e 0. Per convertirlo in numero puoi poi usare sscanf.

coll. permanente

ha risposto 17 Gen '15, 19:52

Baloo63's gravatar image

Baloo63
2512

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×271
×22

domanda posta: 17 Gen '15, 18:35

domanda visualizzata: 750 volte

ultimo aggiornamento: 17 Gen '15, 19:52

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.