Sử dụng %f trong C Language
Em đang học những bài cơ bản về code C thì em gặp thắc mắc nhỏ như này(chú ý cột thứ 2), Đối với những con SỐ SAU DẤU CHẤM khi em thay đổi từ %1.2f hay %1.1f thì nó sẽ mất số còn những SỐ TRƯỚC DẤU CHẤM dù có thay đổi từ %3.2f và %1.2f thì vẫn ko mất chỉ là thay đổi cách xắp sếp mà thôi còn về mặt giá trị thì giữ nguyên! Vậy vì sao nó lại sinh ra như vậy? Em cảm ơn trước
Trong các kiểu giải thích thì qua vd là dễ hiểu nhất, nên mình sẽ lấy một vd nhỏ cho bạn dễ hình dung.
float a = 1.2;
printf("%6.3f", a);
Chạy đoạn code trên sẽ ra:
1.200
Nếu bạn dùng trỏ chuột select số trên thì sẽ thấy có thừa một khoảng trống nhỏ trước số 1.
Và nhận thấy số ký tự selected đúng bằng 6. Vậy con số 6
trong %6.3f
chính là số ký tự mà printf()
sẽ in ra khi dùng format string (tính cả dấu .
), chứ không phải là số ký tự trước dấu .
. Còn cái .3
thì sẽ là số ký tự sẽ xuất hiện sau dấu .
.
Mà nói đến đoạn số 6 chắc bạn cũng hiểu rồi.
À còn nữa. Nếu mà số ký tự in ra lớn hơn so với format thì nó sẽ tự động lấy thêm.
4 Likes
Cảm ơn bạn nhiều
1 Like