01/10/2018, 13:54

Lệnh setprecision

mình đang thắc mắc về một số trường hợp sau đây (câu lệnh và kết quả in ra console):
cout << setprecision(3) << 1.23456789 << endl; => 1.23
cout << setprecision(3) << 0.123456789 << endl; => 0.123
cout << fixed << setprecision(3) << 1.23456789 << endl; => 1.235
mong mọi người giải thích giùm mình và càng tường tận càng tốt.

viết 16:03 ngày 01/10/2018

setprecision(x) là in ra số thập phân, lấy x chữ số đầu tiên.

  • setprecision(3) << 1.23456789 3 chữ số đầu tiên của 1.23456789 là 123 => in ra 1.23
  • setprecision(3) << 0.123456789 3 chữ số đầu tiên của 0.123456789 cũng là 123 (ko tính số 0) => in ra 0.123
  • setprecision(3) << 0.0123456789 3 chữ số đầu tiên của 0.0123456789 cũng là 123 (ko tính mấy số 0 ở trước) => in ra 0.0123
  • setprecision(3) << 0.0000123456789 3 chữ số đầu tiên của 0.0000123456789 cũng là 123 (ko tính số 0) => in ra 1.23e-05

kiểu viết số thập phân 1.23e-05 là kiểu viết scientific, ai học qua phổ thông cũng biết số A vô ga drô 6.023x1023 thì đây chính là nó: 6.023e+23

muốn viết kiểu bình thường thì thêm fixed vào: cout << fixed

khi thêm fixed vào rồi thì setprecision(x) lại có nghĩa khác: lấy x số sau dấu . thập phân

Nam Trần viết 15:58 ngày 01/10/2018

Thật sự cảm ơn bạn. Mình đang thắc mắc chỗ này, bạn lại giải thích cực kì rõ ràng và dễ hiểu nữa

Bài liên quan
0