変数の型は変わらない。その定数の型を指定するだけ。

例えば
float f, g;
f = .......;
g = f * 3.14;
などと書いたとき、3.14 は double 型なので、 f をいったん double に変換してから 3.14 を掛け、
結果を float に変換し戻して g に代入するという面倒な手順を踏むことになる。
g = f * 3.14f;
と書けば float のまま掛け算する。

long doubleの方は、例えば
long double x = 1.2345678901234567890;
などと書いても、この定数値 1.234.... は double 型の精度であって、long double 型の精度を持った定数ではない。
それでは困るんだよ long double 精度の定数値が必要なんだ、という場合は
long double x = 1.2345678901234567890L;
などとする必要がある。