Do С99, sự phù hợp giữa các chỉ định định dạng và các loại đối số dấu phẩy động trong C là nhất quán giữa printfvà scanf. Nó là
%f cho float
%lf cho double
%Lf cho long double
Nó chỉ xảy ra khi các đối số của kiểu floatđược truyền dưới dạng tham số matrixdic, các đối số đó được chuyển đổi hoàn toàn thành kiểu double. Đây là lý do tại sao trong printfđịnh dạng định dạng %fvà %lftương đương và có thể hoán đổi cho nhau. Trong printfbạn có thể "sử dụng chéo" %lfvới floathoặc %fvới double.
Nhưng không có lý do để thực sự làm điều đó trong thực tế. Đừng sử dụng %fđể printftranh luận về loại double. Đó là một thói quen phổ biến được sinh ra từ C89 / 90 lần, nhưng đó là một thói quen xấu. Sử dụng %lftrong printfcho doublevà tiếp tục %fdành cho floatđối số.