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...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 :
printf("%.20lf\n", G) : il .20 dice alla printf di visualizzare le prime 20 cifre decimali del tuo numero in virgola mobile.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; }
![]()
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![]()