C ++ cout이 과학적 표기법을 사용하지 않도록하는 방법
double x = 1500;
for(int k = 0; k<10 ; k++){
double t = 0;
for(int i=0; i<12; i++){
t += x * 0.0675;
x += x * 0.0675;
}
cout<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;
}
이것은 출력
Bas ana : 3284.78 Son faiz : 1784.78 Son ana : 5069.55
Bas ana : 7193.17 Son faiz : 3908.4 Son ana : 11101.6
Bas ana : 15752 Son faiz : 8558.8 Son ana : 24310.8
Bas ana : 34494.5 Son faiz : 18742.5 Son ana : 53237
Bas ana : 75537.8 Son faiz : 41043.3 Son ana : 116581
Bas ana : 165417 Son faiz : 89878.7 Son ana : 255295
Bas ana : 362238 Son faiz : 196821 Son ana : 559059
Bas ana : 793246 Son faiz : 431009 Son ana : 1.22426e + 006
Bas ana : 1.73709e + 006 Son faiz : 943845 Son ana : 2.68094e + 006
Bas ana : 3.80397e + 006 Son faiz : 2.06688e + 006 Son ana : 5.87085e + 006
과학적인 숫자가 아닌 정확한 숫자로 숫자를 표시하고 싶습니다. 어떻게 할 수 있습니까?
std::fixed
스트림 조작기 사용 :
cout<<fixed<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;
위에서 언급했듯이 std :: fixed를 사용하여 다음과 같이 문제를 해결할 수 있습니다.
cout << fixed;
cout << "Bas ana: " << x << "\tSon faiz: " << t << "\tSon ana: " << x+t <<endl;
그러나이 작업을 수행 한 후에는 프로젝트의 어느 곳에서나 float 또는 double을 인쇄 할 때마다이 고정 된 표기법으로 숫자가 인쇄됩니다. 사용하여 되돌릴 수 있습니다.
cout << scientific;
그러나 코드가 더 복잡해지면 지루할 수 있습니다.
이것이 Boost가 I / O Stream State Saver를 만든 이유입니다. 이것은 사용중인 I / O 스트림을 함수 호출 이전의 상태로 자동으로 반환합니다. 다음과 같이 사용할 수 있습니다.
#include <boost/io/ios_state.hpp> // you need to download these headers first
{
boost::io::ios_flags_saver ifs( os );
cout << ios::fixed;
cout<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;
} // at this bracket, when ifs goes "out of scope", your stream is reset
Boost의 I / O Stream State Saver에 대한 자세한 정보 는 공식 문서 에서 찾을 수 있습니다 .
특히 국제화를 처리해야하는 경우 출력을 더 쉽게 만들 수 있는 Boost Format 라이브러리 를 확인할 수도 있습니다. 그러나이 특정 문제에 대해서는 도움이되지 않습니다.
형식 플래그를 사용할 수 있습니다.
추가 정보 : http://www.cplusplus.com/reference/iostream/ios_base/fmtflags/
다음 구문을 코딩하십시오.
std::cout << std::fixed << std::setprecision(n);
(n)
소수점 정밀도의 수는 어디에 있습니까 ? 이것은 그것을 고칠 것입니다.
iostream으로 얻을 수있는 서식 지정 연산자의 전체 모음이 있습니다. 다음은 시작 하는 데 도움이되는 자습서 입니다.
참조 URL : https://stackoverflow.com/questions/5212018/how-to-make-c-cout-not-use-scientific-notation
'developer tip' 카테고리의 다른 글
줄 번호 정보와 함께 gcc를 사용하여 C ++에 대한 스택 추적을 얻는 방법은 무엇입니까? (0) | 2020.12.24 |
---|---|
서버 전략에서 데이터를 캐시하기위한 클라이언트 (iOS)의 핵심 데이터 (0) | 2020.12.24 |
파이썬의 While 루프에 할당? (0) | 2020.12.24 |
JCheckbox-ActionListener 및 ItemListener? (0) | 2020.12.24 |
Azure 저장소 테이블과 SQL (0) | 2020.12.24 |