Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c]divisione fra costanti

    Ciao a tutti
    Per un esercizio di c ho creato un convertitore di temperature da fahrenait a celsius e viceversa; ecco le funzioni:
    codice:
    float celsToFah(float cels)
    {
    	return 9 / 5 * cels + 32;
    }
    
    float fahToCels(float fah)
    {
    	return 5 / 9 * (fah - 32);
    }
    Ma mi sono accorto che non funzionava: nel primo caso mi dava semplicemente il risultato di cels + 32, nel secondo 0. Ho capito che il problema erano le costanti: il rapporto 9 / 5 viene approssimato ad uno ed il rapporto 5 / 9 a 0.
    Il problema è facilmente reversibile (basta spostare la parte frazionale dopo la variabile.

    Ma è normale che non si possa effettuare divisioni fra interi? e se voglio definire numeri reali (es. pigreco) come faccio?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi indicare tipo e precisione delle costanti

    codice:
    float celsToFah(float cels)
    {
    	return 9.0f / 5.0f * cels + 32.0f;
    }
    
    float fahToCels(float fah)
    {
    	return 5.0f / 9.0f * (fah - 32.0f);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ah, ti ringrazio, non conoscevo questo operatore.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Bakaburg
    Ah, ti ringrazio, non conoscevo questo operatore.
    Nessun operatore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5

    Re: [c]divisione fra costanti

    Originariamente inviato da Bakaburg
    e se voglio definire numeri reali (es. pigreco) come faccio?
    pigreco non ha una rappresentazione decimale finita, quindi non puoi ;-)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: Re: [c]divisione fra costanti

    Originariamente inviato da MacApp
    pigreco non ha una rappresentazione decimale finita, quindi non puoi ;-)
    Vabbè si può fare lo stesso con una certa approssimazione... d'altra parte in C la costante pi greco/a è già definita in math.h e si chiama M_PI. Non ricordo quale sia la precisione, mi pare 20 cifre dopo la virgola.
    every day above ground is a good one

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.