Moltiplicazione di due float mi restituisce nan

di Anonimizzato32332 il
8 risposte
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

  • 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
  • Se la funzione è corretta, avrai fatto qualche assegnazione sbagliata dopo. Metti il codice.
  • 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
  • Quando compili? Quando esegui magari.
    Da come è scritta quella funzione sicuramente starà dentro una classe. Non avrai creato correttamente l'istanza della classe.
  • 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;
    };
  • Ma che è un quiz a puntate? Boh
  • Weierstrass ha scritto:


    Ma che è un quiz a puntate? Boh
    Grazie per l'aiuto
  • 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