float 변수 x를 C++에서 "1.00e6"형식으로 인쇄하려고합니다. 여기서 e 앞에 소수점 2 자리 만 있으면됩니다."e"앞에 소수점 이하 자릿수를 어떻게 제한합니까?
이 글을 읽고 : http://www.cplusplus.com/reference/cstdio/printf/, 어떤 지정자를 사용해야할지 모르겠습니다. 이것을 C++로 할 수 있습니까?
: 당신이 어떤 유닉스 계열 시스템에 일반적으로 (등 OS X, 리눅스, BSD) 경우float 변수 x를 C++에서 "1.00e6"형식으로 인쇄하려고합니다. 여기서 e 앞에 소수점 2 자리 만 있으면됩니다."e"앞에 소수점 이하 자릿수를 어떻게 제한합니까?
이 글을 읽고 : http://www.cplusplus.com/reference/cstdio/printf/, 어떤 지정자를 사용해야할지 모르겠습니다. 이것을 C++로 할 수 있습니까?
: 당신이 어떤 유닉스 계열 시스템에 일반적으로 (등 OS X, 리눅스, BSD) 경우당신은 C++에서 같은 작업을 수행 할 수 있습니다
double f = 1.00e6;
std::cout.precision(2);
std::cout << std::scientific;
std::cout<<f <<std::endl;
It will output: 1.00e+06 in this case.
편집 : @ user657267에 의해 지적, precision
의 조작뿐만 아니라있다,
double f = 1.00e6;
std::cout << std::setprecision(2) << std::scientific << f << '\n';
이 같은 효과가 있어야한다.
'precision'을위한 조작자가 있습니다.'std :: cout << std :: setprecision (2) << std :: scientific << f << '\ n'; ' – user657267
@ user657267이 동의했습니다. 그 점을 지적 해 주셔서 감사합니다. – taocp
N
원하는 정밀도
.N
와 정밀도를 지정
man 3 printf
와
printf()
에 대한 문서를 읽기
#include <stdio.h>
int main()
{
printf("%.2e\n", 1.0);
}
출력 :
이 기준에 의한 C++ 표준의 일부인 C 표준 라이브러리에 대한 질문이 정말이기 때문에 내가 C의 코드를 준1.00e+00
.
왜 'printf'를 사용하고 있습니까? –
@AlexChamberlain :'printf()'를 사용할 때 본질적으로 잘못된 점은 없습니다. ''보다 쉽게 현지화 할 수 있습니다. 현대의 컴파일러는 그것을 체크 할 것이다. –
@AlexChamberlain : "관용적"은 본질적으로 주관적입니다. 모두가 ''또는 ''을 사용할 것인지에 대해서는 동의하지 않으며,이 토론을위한 포럼이 아닙니다. 의견 대신 사실에 충실하십시오. –