Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [C]Divisione

    Ciao a tutti,

    ho un prlblemino...a un certo punto nel listato di un mio programma mi trovo a dover fare questa operazione

    temp=convertito/(int)pow(10,i-1);

    dove temp e convertito sono due variabili int...ora va tutto bene senonche quando convertito assume valore 99999 e i il valore 5, cioe si esegue la divisione 99999/10000, ho un valore restituito pari a 10 e non a 9!!!Questo perche credo che lui approssimi il risultato della divisione che e 9.9999! C e un modo per evitare che approssimi da solo questo valore?

    Grazie a tutti!

    Ciau

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [C]Divisione

    Originariamente inviato da UltraBeginner
    Ciao a tutti,

    ho un prlblemino...a un certo punto nel listato di un mio programma mi trovo a dover fare questa operazione

    temp=convertito/(int)pow(10,i-1);

    dove temp e convertito sono due variabili int...ora va tutto bene senonche quando convertito assume valore 99999 e i il valore 5, cioe si esegue la divisione 99999/10000, ho un valore restituito pari a 10 e non a 9!!!Questo perche credo che lui approssimi il risultato della divisione che e 9.9999! C e un modo per evitare che approssimi da solo questo valore?

    Grazie a tutti!

    Ciau
    Ma le variaibili di che tipo sono?

  3. #3

    Allora

    Dunque

    temp: intero (int)
    convertito intero (int)
    i : intero(int)

    ma perke lui deve approssimare 9.9999 a 10!!!!!!!!!!!! Non ce un modo per fargli capire di prendere solo la parte intera del risultato??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma se sono tutti interi, come speri di trovarci dentro un decimale?

  5. #5

    Ehm

    Mha guarda,
    il problema e chee appunto lui si trova a dover fare:

    99999/10000

    che per noi umani fa 9.9999

    ma lui, dato che la variabile temp e' un intero, non dovrebbe per l appunto sbattersene della virgola e restiuirmi 9? Invece si ostina a restituire 10! Nessuno gli ha chiesto di approssimare

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Avevo capito che volevi anche la parte decimale ...

    Ma se scrivi

    codice:
     int  temp, convertito=99999;
     int i = 5;
    
     temp=convertito/(int)pow(10,i-1);
    
     printf("%d\n", temp);
    ottieni 10? Sicuro?

  7. #7

    eh si

    guarda purtroppo si....l ho risolta in un modo un po becero ma funzionante, per la cronaca ho fatto cosi:

    temp=convertito/(int)pow(10,i-1);
    if(temp==10)
    temp--;

    bha...misteri del Dev C++....

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sia con MS Visual C++ che con Dev Cpp a me da 9 come risultato ...

    Con Dev Cpp devi scrivere

    pow(10.0f, i-1);

  9. #9
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    hai sbagliato qualcosa tu.. .ho provato il codice postato da oregon e restituisce 9.

  10. #10
    Originariamente inviato da oregon
    Sia con MS Visual C++ che con Dev Cpp a me da 9 come risultato ...

    Con Dev Cpp devi scrivere

    pow(10.0f, i-1);
    Bhe per prima cosa grazie per lo sbattimento, pero bho io non riesco a capire, ho scritto lo stesso tuo codice e continua a darmi 10....Sara il PC che da i numeri? O forse dipende anche dalla parte restante del codice(anche se non credo)?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.