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.