Originariamente inviato da mico90
Ciao,
non ho mai visto assegnare un attributo long ad un double, infatti il double ha gia una lunghezza complessiva ( mantissa + esponente ) di 64 bit.

Prova con questo :
codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){
    double G = 6.674 * (double)(pow(10,-11));
    
    printf("%.20lf\n", G);
    
    system("pause");
    return 0;
}
printf("%.20lf\n", G) : il .20 dice alla printf di visualizzare le prime 20 cifre decimali del tuo numero in virgola mobile.

ok...così funziona...giustamente il casting lo faccio davanti alla funzione pow che mi pare di ricordare sputi fuori un float e non un double...

Io sono studente di informatica e stò al terzo anno...è un po' che non tocco C ma la teoria ce l'ho abbastanza buona...stò aiutando un ragazzo che stà al primo anno di fisica a passare l'esamino di programmazione...ora il fatto è che da me l'esame di C verteva principalmente su argomenti come allocazione dinamica della memoria, liste, operazioni ricorsive su matrici e blablabla....da loro queste cose più teoriche non ci stanno in quanto lo usano principalmente per fare conti...e ad essere onesto nei miei due esami di C non m'è mai capitato di dover usare tipi di dato per contenere dati grossi o per memorizzare valori esponenziali...dovrò anche far immettere valori con l'esponenziale all'utente...
Visto che questo è il suo primissimo programmino fatto a casa assegnatogli solo per fargli fare printf, scanf e fargli calcolare 2 conticini...non è che posso fargli usare librerie particolari anche perchè alle funzioni non ci sono neanche arrivati...cmq grazie dell'aiuto...a volte ho bisogno di rinfrescarmi un po' la memoria perchè negli ultimi 2 anni ho visto solo altri linguaggi come Java, Prolog, SQL e non ho toccato C