Sejak С99 pencocokan antara penentu format dan tipe argumen floating-point dalam C konsisten antara printfdan scanf. ini
%f untuk float
%lf untuk double
%Lf untuk long double
Kebetulan ketika argumen tipe floatdilewatkan sebagai parameter variadic, argumen tersebut secara implisit dikonversi menjadi tipe double. Ini adalah alasan mengapa dalam printfpenspesifikasi format %fdan %lfsetara dan dipertukarkan. Di dalam printfAnda dapat "cross-use" %lfdengan floatatau %fdengan double.
Tetapi tidak ada alasan untuk benar-benar melakukannya dalam praktik. Jangan gunakan %funtuk printfargumen tipe double. Ini adalah kebiasaan yang tersebar luas yang lahir kembali di tahun C89 / 90, tetapi itu adalah kebiasaan buruk. Gunakan %lfdi printfuntuk doubledan terus %fdicadangkan untuk floatargumen.