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. :slight_smile:

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.
image :point_right: image

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. :slight_smile:

À 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 :smiley:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?