Dans la plupart des implémentations un float tient sur 4 octets et un double (pour "double précision") sur 8 octets, donc un double te permet d'avoir une plus grande précision, dit de façon grossière ça te permet d'avoir plus de chiffres après la virgule.
Après si tu veux vraiment tout savoir il faut te renseigner sur la façon dont sont codés les réels en machine. A noter aussi que certains réels ne peuvent pas être représentés de façon exacte sur un ordinateur, c'est un détail important car il se peut notamment que des tests d'égalité sur des réels ne renvoient pas le résultat attendu.
Et sinon pour répondre au "En général, on utilisera plutôt lequel ? ", en général quand on sait pas trop on prend plutôt un double mais ça dépend vraiment de tes besoins.