Friday, December 02, 2005
C언어] 실수의 지수 표기법 (Scientific Notation;과학적 표기법)
예를 들어 1.00 을 1.000000e+000 이런 식으로 표현하는 방법입니다.
printf 함수나 sprintf 함수에서, %e (퍼센트 기호 + e 또는 E) 라는 형식 지정자를 사용하면 됩니다.
소스 파일명: 0.cpp
가령 3.555500e+004 이런 숫자가 있을 때
10의 4승에, 3.555500 을 곱하면 35555.00 이 나오게 됩니다.
따라서 3.555500e+004 = 35555.00 입니다.
컴파일 및 실행 결과 화면:
▶▶ C언어/Perl] printf() 함수의 포맷 스트링 %s, %d - Format Specifier
지수 표기법 온라인 변환기: ▶▶ 지수 표기법 변환기, 과학적 숫자를 보통 숫자로 변환; Exponential Scientific Notation Convert
printf 함수나 sprintf 함수에서, %e (퍼센트 기호 + e 또는 E) 라는 형식 지정자를 사용하면 됩니다.
C에서, 숫자를 지수 표기 법으로 출력 예제
소스 파일명: 0.cpp
#include <stdio.h>
int main(void) {
double num;
puts(" [ -3.0 에서 3.0 까지 ]");
for (num = -3.0; num <= 3.0; num++)
printf("%.2f = %e\n", num, num);
puts("\n [ 0.0 에서 100.0 까지 ]");
for (num = 0.0; num <= 100.0; num += 10.0)
printf("%.2f = %e\n", num, num);
puts("\n [ 천 단위 이상 ]");
num = 1000.0;
printf("%.2f = %e\n", num, num);
num = 10000.0;
printf("%.2f = %e\n", num, num);
num = 30000.0; // 그리고 e 를 대문자 E 로 출력
printf("%.2f = %E\n", num, num);
num = 35555.0;
printf("%.2f = %e\n", num, num);
num = 35555.123456789;
printf("%.2f = %e\n", num, num);
num = 35555.123456789; // 정밀도 높여 출력
printf("%.16f = %.16e\n", num, num);
puts("\n [ 양수/음수 ]");
num = 35555.0;
printf("%.2f = %e\n", num, num);
num = -35555.0;
printf("%.2f = %e\n", num, num);
puts("\n [ 1보다 작은 수 ]");
num = 1.0;
printf("%f = %e\n", num, num);
num = 0.0;
printf("%f = %e\n", num, num);
num = 0.1;
printf("%f = %e\n", num, num);
num = 0.01;
printf("%f = %e\n", num, num);
num = 0.005;
printf("%f = %e\n", num, num);
num = 0.99;
printf("%f = %e\n", num, num);
num = -0.99;
printf("%f = %e\n", num, num);
return 0;
}
int main(void) {
double num;
puts(" [ -3.0 에서 3.0 까지 ]");
for (num = -3.0; num <= 3.0; num++)
printf("%.2f = %e\n", num, num);
puts("\n [ 0.0 에서 100.0 까지 ]");
for (num = 0.0; num <= 100.0; num += 10.0)
printf("%.2f = %e\n", num, num);
puts("\n [ 천 단위 이상 ]");
num = 1000.0;
printf("%.2f = %e\n", num, num);
num = 10000.0;
printf("%.2f = %e\n", num, num);
num = 30000.0; // 그리고 e 를 대문자 E 로 출력
printf("%.2f = %E\n", num, num);
num = 35555.0;
printf("%.2f = %e\n", num, num);
num = 35555.123456789;
printf("%.2f = %e\n", num, num);
num = 35555.123456789; // 정밀도 높여 출력
printf("%.16f = %.16e\n", num, num);
puts("\n [ 양수/음수 ]");
num = 35555.0;
printf("%.2f = %e\n", num, num);
num = -35555.0;
printf("%.2f = %e\n", num, num);
puts("\n [ 1보다 작은 수 ]");
num = 1.0;
printf("%f = %e\n", num, num);
num = 0.0;
printf("%f = %e\n", num, num);
num = 0.1;
printf("%f = %e\n", num, num);
num = 0.01;
printf("%f = %e\n", num, num);
num = 0.005;
printf("%f = %e\n", num, num);
num = 0.99;
printf("%f = %e\n", num, num);
num = -0.99;
printf("%f = %e\n", num, num);
return 0;
}
가령 3.555500e+004 이런 숫자가 있을 때
10의 4승에, 3.555500 을 곱하면 35555.00 이 나오게 됩니다.
따라서 3.555500e+004 = 35555.00 입니다.
컴파일 및 실행 결과 화면:
D:\Z>cl 0.cpp && 0.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
0.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:0.exe
0.obj
[ -3.0 에서 3.0 까지 ]
-3.00 = -3.000000e+000
-2.00 = -2.000000e+000
-1.00 = -1.000000e+000
0.00 = 0.000000e+000
1.00 = 1.000000e+000
2.00 = 2.000000e+000
3.00 = 3.000000e+000
[ 0.0 에서 100.0 까지 ]
0.00 = 0.000000e+000
10.00 = 1.000000e+001
20.00 = 2.000000e+001
30.00 = 3.000000e+001
40.00 = 4.000000e+001
50.00 = 5.000000e+001
60.00 = 6.000000e+001
70.00 = 7.000000e+001
80.00 = 8.000000e+001
90.00 = 9.000000e+001
100.00 = 1.000000e+002
[ 천 단위 이상 ]
1000.00 = 1.000000e+003
10000.00 = 1.000000e+004
30000.00 = 3.000000E+004
35555.00 = 3.555500e+004
35555.12 = 3.555512e+004
35555.1234567889990000 = 3.5555123456788999e+004
[ 양수/음수 ]
35555.00 = 3.555500e+004
-35555.00 = -3.555500e+004
[ 1보다 작은 수 ]
1.000000 = 1.000000e+000
0.000000 = 0.000000e+000
0.100000 = 1.000000e-001
0.010000 = 1.000000e-002
0.005000 = 5.000000e-003
0.990000 = 9.900000e-001
-0.990000 = -9.900000e-001
D:\Z>
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
0.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:0.exe
0.obj
[ -3.0 에서 3.0 까지 ]
-3.00 = -3.000000e+000
-2.00 = -2.000000e+000
-1.00 = -1.000000e+000
0.00 = 0.000000e+000
1.00 = 1.000000e+000
2.00 = 2.000000e+000
3.00 = 3.000000e+000
[ 0.0 에서 100.0 까지 ]
0.00 = 0.000000e+000
10.00 = 1.000000e+001
20.00 = 2.000000e+001
30.00 = 3.000000e+001
40.00 = 4.000000e+001
50.00 = 5.000000e+001
60.00 = 6.000000e+001
70.00 = 7.000000e+001
80.00 = 8.000000e+001
90.00 = 9.000000e+001
100.00 = 1.000000e+002
[ 천 단위 이상 ]
1000.00 = 1.000000e+003
10000.00 = 1.000000e+004
30000.00 = 3.000000E+004
35555.00 = 3.555500e+004
35555.12 = 3.555512e+004
35555.1234567889990000 = 3.5555123456788999e+004
[ 양수/음수 ]
35555.00 = 3.555500e+004
-35555.00 = -3.555500e+004
[ 1보다 작은 수 ]
1.000000 = 1.000000e+000
0.000000 = 0.000000e+000
0.100000 = 1.000000e-001
0.010000 = 1.000000e-002
0.005000 = 5.000000e-003
0.990000 = 9.900000e-001
-0.990000 = -9.900000e-001
D:\Z>
▶▶ C언어/Perl] printf() 함수의 포맷 스트링 %s, %d - Format Specifier
지수 표기법 온라인 변환기: ▶▶ 지수 표기법 변환기, 과학적 숫자를 보통 숫자로 변환; Exponential Scientific Notation Convert
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home