Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C/C++] Funzione pow

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250

    [C/C++] Funzione pow

    Ciao ragazzi,in seguito ad un elevamento a potenza mi viene fuori un "risultato indesiderato".
    Premetto che l'elevamento a potenza provoca un numero abbastanza elevato (2 alla 1000)

    Ecco il mio codice:
    codice:
    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main()
    {
        char numero[100];
         float risultato;
        risultato = pow(2,2000.0);
        
        cout << risultato;
    
        return 0;
    }
    Sia eseguendo il debug che stampando a video il risultato mi esce la scritta "inf" ..può essere che il risultato sia troppo elevato per essere contenuto in un float?
    P.s. Ho anche provato a dichiarare il risultato come double o long double,ma il risultato è analogo.

    Potreste spiegarmi il motivo di questo fatto (e anche come risolvere? )

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh, sì ... 2 elevato a 1000 lo puoi calcolare con un double (qualcosa ... E301 ...).

    Ovviamente non puoi calcolare 2 elevato a 2000 (che hai scritto nel codice) neanche con un double.

    Per questo tipo di calcoli devi utilizzare apposite librerie che gestiscono "grandi numeri" ... cerca nel forum perché già se n'è parlato.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Ok grazie mille...in effetti nel codice ho scritto 2 ^ 2000...ma se avessi voluto veramente scriverlo?...all'interno del programma mi esce "inf"... (ovviamente ho sbagliato a scrivere ).

    Proverò a cercare...ma che genere di librerie dovrei cercare? (intendo il nome...tanto per non andare "alla cieca")

    Navigando un pò per la rete ho trovato http://gmplib.org/...potrebbe fare al caso mio?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Marco1995
    Ok grazie mille...in effetti nel codice ho scritto 2 ^ 2000...ma se avessi voluto veramente scriverlo?...all'interno del programma mi esce "inf"... (ovviamente ho sbagliato a scrivere ).
    Mi pare di averti risposto ...

    Navigando un pò per la rete ho trovato http://gmplib.org/...
    Esatto ... vedi che è facile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Mi pare di averti risposto ...
    Ah non avevo capito che con:
    Per questo tipo di calcoli devi utilizzare apposite librerie che gestiscono "grandi numeri" ... cerca nel forum perché già se n'è parlato.
    ti riferivi a (2^2000)

    Esatto ... vedi che è facile ...


    Grazie dell'aiuto!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.