Nếu tôi có biến kiểu float và muốn lấy đầu ra với 3 chữ số sau dấu thập phân, sử dụng iostream trong C++. Tôi phải làm việc đó như thế nào?Đầu ra luồng C++ với 3 chữ số sau dấu thập phân. Làm sao?
Trả lời
Con này có hiển thị "13,141"
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
Bạn có thể nhận được số chữ số phân số (và nhiều thứ khác) cố định bằng công iomanip
tiêu đề. Ví dụ:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
chí đầu ra:
3.14
Lưu ý rằng cả hai fixed
và setprecision
thay đổi dòng vĩnh viễn như vậy, nếu bạn muốn để bản địa hoá các hiệu ứng, bạn có thể lưu thông tin trước và khôi phục lại nó sau đó :
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
sản lượng đó là:
3.14159
3.14
3.14
3.14159
Cảm ơn bạn đã cho biết cách lưu và khôi phục cài đặt luồng, rất hữu ích. – bhaller
sử dụng dòng này "sử dụng không gian tên std;" để có mã sạch hơn –
@ Khaled, có đối số và chống lại điều phức tạp đến mức chúng không vừa trong hộp nhận xét :-) Bản thân tôi thích không gian tên rõ ràng cho tất cả các chương trình đơn giản nhất hoặc, ở mức tối thiểu, sử dụng các mục cụ thể * trong * một không gian tên thay vì nhập toàn bộ lô. Tuy nhiên, cuộc thảo luận cụ thể đó là tiếp tuyến với câu hỏi và câu trả lời của tôi. – paxdiablo
- 1. LISP - chữ số sau dấu thập phân
- 2. số định dạng có 3 dấu thập phân, dấu phân tách hàng thập phân và dấu phẩy sau
- 3. In phao PHP với 3 chữ số sau dấu thập phân?
- 4. printf% f chỉ với 2 số sau dấu thập phân?
- 5. Hiển thị hai chữ số sau dấu thập phân trong C++
- 6. Xóa chữ số sau hai dấu thập phân không phải số tròn trong javascript?
- 7. Cách trả về số phao có 2 chữ số sau dấu thập phân?
- 8. NSNumberFormatter chỉ tròn đến 3 chữ số thập phân
- 9. Kiểm soát số chữ số thập phân trong đầu ra in trong R
- 10. Làm tròn xuống 2 chữ số thập phân trong C#
- 11. C++ kết nối luồng đầu ra với luồng đầu vào
- 12. C/C++ đếm số thập phân?
- 13. Định dạng số có dấu thập phân với số 0 hàng đầu
- 14. Dấu tách thập phân C#?
- 15. Cách cắt số 0 sau dấu thập phân
- 16. Làm cách nào để lấy số chữ số sau dấu thập phân trong cột phao trong ms sql?
- 17. C++ Cách xuất số có ít nhất một số đằng sau dấu thập phân
- 18. Format đến hai chữ số thập phân
- 19. Cách đặt ',' làm dấu phân cách thập phân với R
- 20. Vòng 2 chữ số thập phân
- 21. C# Regex - Xóa dấu thập phân khi không nằm giữa hai chữ số
- 22. Làm thế nào để hiển thị đầu ra của dữ liệu float với 2 chữ số thập phân trong Java?
- 23. Bàn phím số với dấu phân cách thập phân
- 24. Số thập lục phân C#
- 25. C++ luồng đầu ra tùy chỉnh với thụt đầu dòng
- 26. Định dạng C# Double - ToString() với hai chữ số thập phân nhưng không làm tròn
- 27. Android - Vòng 2 chữ số thập phân
- 28. Thêm số 0 vào dấu phẩy sau dấu thập phân trong Python
- 29. Làm cách nào để hiển thị thêm số thập phân trong bảng điều khiển đầu ra?
- 30. Cách sử dụng bộ lọc nổi để chỉ hiển thị hai chữ số sau dấu thập phân?
Cảm ơn. Nó rất hữu ích cho tôi. – ozeron
Điều này làm việc cho 3,14159 nhưng nó không hoạt động cho 13,14159. Giải pháp của bạn chỉ hoạt động đối với các số nhỏ hơn 10. – mantler
@manler Bạn nói đúng, bài đăng gốc của tôi không đúng, nhưng bài cuối cùng (bài tôi đã chỉnh sửa 11 phút trước) hoạt động chính xác. Tôi xác minh nó với 2 và 3 chữ số trước dấu thập phân, và nó in 3 chữ số như mong đợi. – dasblinkenlight