Unione di variabili INT

di il
10 risposte

Unione di variabili INT

Ciao a tutti, sono alle prese con un programma che mi scrive in un file secondo queste regole;
fprintf (nomefile,"Y%d.%d\n",risultato,risultato_decimale);

mi scrive valori tipo:
4.2
4.4134
3.58
17.856655
ecc.....

i valori interi possono variare da 1 a due cifre invece i decimali da 1 a 6 o 7 cifre decimali...
quello che vorrei fare e non riesco, e' unire le due int (risultato) e (risultato_decimale)
in un'unica variabile tipo long per poi moltiplicarla per 1000 e scrivere sul file solo l'intero senza la parte decimale.

ogni idea e' ben accetta
grazie.

10 Risposte

  • Re: Unione di variabili INT

    Piccola errata corrige:
    i valori scritti sono con la Y
    Y4.2
    Y4.4134
    Y3.58
    Y17.856655
    ecc.....

    a me serve una variabile di tipo long che per ogni valore il suo contenuto sia tipo

    4.2
    4.4134
    3.58
    17.856655
    ecc....

    grazie
  • Re: Unione di variabili INT

    Vuoi un long il cui valore sia 4.2 ? Forse ho capito male io ...
  • Re: Unione di variabili INT

    Si esatto!
  • Re: Unione di variabili INT

    Devi comprendere che è impossibile dato che un long è un tipo di dato intero ... semmai devi usare un double
  • Re: Unione di variabili INT

    Si,scusa.
    signed long intendevo....
  • Re: Unione di variabili INT

    Non hai capito ... non è un problema di "segno" ma di dato "intero" ... sono concetti diversi ...

    Conosci il concetto di "tipo di dato intero"?
  • Re: Unione di variabili INT

    Non tanto...
  • Re: Unione di variabili INT

    Scusa ... ricominciamo ... se tu hai il valore 4.1 (valore floating point) non puoi inserirlo in un intero a meno che non lo fai diventare intero, magari moltiplicandolo, ad esempio, per 1 milione.
    In questo caso avrai

    4.1 x 1000000 ----> 4100000

    e potrai inserirlo in un intero
  • Re: Unione di variabili INT

    No, scusami tu! forse non mi sono spiegato, le due variabili sono di tipo int
    il numero letto da un file di testo e' 5.45611
    me lo stampa 545611
    devo modificarlo in 5.45611*1000=5456,11
    e stampare sul file cosi':
    5456 senza i decimali
  • Re: Unione di variabili INT

    Beh ... comincio a non capirci nulla ... cerca di spiegarti meglio ...

    Hai due variabili intere e nel file il numero è 5.45611 ? E perché mai hai due variabili intere e non una double??

    Usa un double e moltiplicalo per 1000 e poi prendi la parte intera ...
Devi accedere o registrarti per scrivere nel forum
10 risposte