Moltiplicazione di due float mi restituisce nan

di il
8 risposte

Moltiplicazione di due float mi restituisce nan

Salve!
Sto cercando di scrivere una funzione (float) che fa la moltiplicazione di due float e restituisce un float, ma quello che ottengo è 'nan', e non capisco come fare. Ho provato anche facendo la moltiplicazione tra due interi e facendo uno static cast del numeratore ma nulla.
Stessa cosa mi succede con il double.
cosa sbaglio?

(inoltre ho visto che il professore, che ha svolto l'esercizio esattamente come me ma su un Mac non ha avuto questi problemi)

8 Risposte

  • Re: Moltiplicazione di due float mi restituisce nan

    Sbagli a:
    - non postare il codice se vuoi un aiuto da esseri non onniscienti
    - sostenere che il Not a Number non sia uno dei valori possibili di un tipo float o double
    - parlare di numeratori nelle moltiplicazioni
  • Re: Moltiplicazione di due float mi restituisce nan

    Se la funzione è corretta, avrai fatto qualche assegnazione sbagliata dopo. Metti il codice.
  • Re: Moltiplicazione di due float mi restituisce nan

    1) il codice è una cosa del genere, non l'ho messo perché è proprio la situazione che ho descritto, non ci sono altre cose di contorno
    float calcoloArea(){
    return base*altezza;}
     
    dove base e altezza sono float, stessa cosa con double e con int facendo lo static cast.
    Sono alle prime armi quindi sarà sicuramente una cosa banalissima


    2) hai ragione, non lo restituisce ma quando compilo mi dà nan...

    3) hai ragione, intendevo che anche quando provo con le divisioni mi dà li stesso problema
  • Re: Moltiplicazione di due float mi restituisce nan

    Quando compili? Quando esegui magari.
    Da come è scritta quella funzione sicuramente starà dentro una classe. Non avrai creato correttamente l'istanza della classe.
  • Re: Moltiplicazione di due float mi restituisce nan

    Weierstrass ha scritto:


    Quando compili? Quando esegui magari.
    Da come è scritta quella funzione sicuramente starà dentro una classe. Non avrai creato correttamente l'istanza della classe.
    sì è una classe derivata, e calcoloArea è una funzione virtuale. Da qui si capisce magari l'errore?
    #include "Tavolo.h"
    
    class Rettangolare:public Tavolo{
        public:
            Rettangolare(int col,std::string tp, std::string f, float p,float b, float a):
                Tavolo(col, tp, f, p), base(b), altezza(a){}
    
            float calcoloArea() {
                return base*altezza;
    
            }    
       
    
        private:
            float base;
            float altezza;
    };
  • Re: Moltiplicazione di due float mi restituisce nan

    Ma che è un quiz a puntate? Boh
  • Re: Moltiplicazione di due float mi restituisce nan

    Weierstrass ha scritto:


    Ma che è un quiz a puntate? Boh
    Grazie per l'aiuto
  • Re: Moltiplicazione di due float mi restituisce nan

    E' come se si guastasse la TV e ti presentassi dal tecnico: la prima volta a mani vuote, la seconda con la confezione di quando l'hai comprata e la terza con il telecomando... il tecnico, così come noi, non può di certo fare miracoli!

    Scherzi a parte, se vuoi essere aiutato posta il codice completo, oppure, se ne sei geloso e non vuoi condividerlo, mettiti di impegno e scrivi un frammento di codice compilabile che riproduca lo stesso problema.
Devi accedere o registrarti per scrivere nel forum
8 risposte