2010-02-25 27 views
27

tôi cần phải ngăn đôi của tôi để in trong ký hiệu khoa học trong hồ sơ của tôi,Ngăn chặn ký hiệu khoa học trong ostream khi sử dụng << với đôi

khi tôi làm điều này

outfile << X; 
+1

liên quan cho các ngôn ngữ khác: [Haskell] (http://stackoverflow.com/questions/8098457/how-do-i-get-to-haskell-to-output-number-not-in-khoa học-ký hiệu) [Lua] (http://stackoverflow.com/questions/1133639/how-can-i-print -a-huge-number-in-lua-without-using-science-notation) [C++ ostreams] (http://stackoverflow.com/questions/2335657/prevent-scientific-notation-in-ostream-when-using- with-double) [Delphi] (http://stackoverflow.com/questions/6077153/how-to-disable-scie ntific-notation-in-asstring-in-delphi) –

Trả lời

30

Để thiết lập định dạng của các biến nổi bạn có thể sử dụng một sự kết hợp của setprecision(n), showpointfixed. Để sử dụng thao tác dòng tham số như setprecision(n) bạn sẽ phải bao gồm các thư viện iomanip:

#include <iomanip> 

setprecision(n): sẽ hạn chế nổi đầu ra để n nơi, và một khi bạn cài đặt nó, nó được thiết lập cho đến khi bạn rõ ràng unset nó cho phần còn lại của đầu ra luồng.

fixed: sẽ thực thi rằng tất cả các số dấu phẩy động đều được xuất theo cùng một cách. Vì vậy, nếu chính xác của bạn được thiết lập đến 4 nơi, 6.2, và 6.20 cả hai sẽ được đầu ra như:

6.2000 
6.2000 

showpoint: sẽ buộc các phần thập phân của một biến dấu chấm động sẽ được hiển thị, ngay cả khi nó không phải là rõ ràng bộ. Ví dụ, 4 sẽ được xuất ra như:

4.0 

Sử dụng tất cả chúng với nhau:

+1

Điều gì khiến bạn nghĩ rằng điểm giới thiệu tạo nên sự khác biệt ở đây? Phần thập phân luôn được hiển thị bằng 0 do độ chính xác. – Ident

6

Dưới đây là một ví dụ về việc sử dụng 01.230.

theo câu hỏi của bạn sử dụng

cout<< fixed<< a<< endl; 
+0

Câu trả lời hay hơn vì câu trả lời trực tiếp câu hỏi ('cố định'). – Anonymous

Các vấn đề liên quan