소수점 앞에 항상 "0"이 있도록 과학적 표기법으로 숫자를 출력해야합니다.출력 형식 지정
x = 134.87546의 경우 출력을 생성해야합니다. 0.134875E03 NOT 1.348755E02
누군가이 작업 방법을 알고 있습니까?
미리 감사드립니다. - Shiraz.
소수점 앞에 항상 "0"이 있도록 과학적 표기법으로 숫자를 출력해야합니다.출력 형식 지정
x = 134.87546의 경우 출력을 생성해야합니다. 0.134875E03 NOT 1.348755E02
누군가이 작업 방법을 알고 있습니까?
미리 감사드립니다. - Shiraz.
int exponent = floor(log10(num)) + 1;
그런 다음 십진수가없는 숫자 "E"를 누른 다음 지수를 인쇄하십시오.
int exp = (int)log10(input)+1;
double shifted = input/pow(10.0, exp);
printf("%fE%d", shifted, exp);
일반적인 출력 형식 라이브러리 인 Boost Format library을 사용하여 조사 할 수 있습니다.
'log()'는 C 표준 라이브러리의 자연 로그입니다. 당신은'log10()'을 원한다. – Amber
또한 'ceil (log10 (num))'은 입력이 '10'이면 '1'을, '10'이 연결되는 '0.'이 '0.10'이면 '10^1'이 곱해질 때 '1.0'은'10'과 같지 않습니다. 당신은 정말로 1을 더해 바닥을 원합니다. – Amber
@Dav, 아, 고마워요. 나는 stdmath를 오랫동안 사용하지 않았기 때문에 나는 log10을 의미한다고 덧붙였다. 또한 log10에 대해 10의 지수가 정수인 경우를 고려하지 않았습니다. – strager