Thursday, January 25, 2007
Java/자바] 실수의 지수 표기법 (Scientific Notation;과학적 표기법)
예를 들어 1.00 을 1.000000e+00 이런 식으로 표현하는 방법입니다.
printf 함수 스타일의 포맷 출력을 하는 format() 메소드에서 %e 라는 형식 지정자를 사용합니다.
파일명: Foo.java
가령 3.555500e+04 이런 숫자가 있을 때
10의 4승에, 3.555500 을 곱하면 35555.00 이 나오게 됩니다.
따라서 3.555500e+04 = 35555.00 입니다.
컴파일 및 실행 결과 화면:
▶▶ 자바/Java] printf(), sprintf() 함수 포맷 출력 구현, System.out.println()으로
지수 표기법 온라인 변환기: ▶▶ 지수 표기법 변환기, 과학적 숫자를 보통 숫자로 변환; Exponential Scientific Notation Convert
printf 함수 스타일의 포맷 출력을 하는 format() 메소드에서 %e 라는 형식 지정자를 사용합니다.
숫자를 지수 표기 법으로 출력 예제
파일명: Foo.java
class Foo {
public static void main(String[] args) {
double num;
System.out.println(" [ -3.0 에서 3.0 까지 ]");
for (num = -3.0; num <= 3.0; num++)
System.out.format("%.2f = %e%n", num, num);
System.out.println();
System.out.println(" [ 0.0 에서 100.0 까지 ]");
for (num = 0.0; num <= 100.0; num += 10.0)
System.out.format("%.2f = %e%n", num, num);
System.out.println();
System.out.println(" [ 천 단위 이상 ]");
num = 1000.0;
System.out.format("%.2f = %e%n", num, num);
num = 10000.0;
System.out.format("%.2f = %e%n", num, num);
num = 30000.0; // 그리고 e 를 대문자 E 로 출력
System.out.format("%.2f = %E%n", num, num);
num = 35555.0;
System.out.format("%.2f = %e%n", num, num);
num = 35555.123456789;
System.out.format("%.2f = %e%n", num, num);
num = 35555.123456789; // 정밀도 높여 출력
System.out.format("%.16f = %.16e%n", num, num);
System.out.println();
System.out.println(" [ 양수/음수 ]");
num = 35555.0;
System.out.format("%.2f = %e%n", num, num);
num = -35555.0;
System.out.format("%.2f = %e%n", num, num);
System.out.println();
System.out.println(" [ 1보다 작은 수 ]");
num = 1.0;
System.out.format("%f = %e%n", num, num);
num = 0.0;
System.out.format("%f = %e%n", num, num);
num = 0.1;
System.out.format("%f = %e%n", num, num);
num = 0.01;
System.out.format("%f = %e%n", num, num);
num = 0.005;
System.out.format("%f = %e%n", num, num);
num = 0.99;
System.out.format("%f = %e%n", num, num);
num = -0.99;
System.out.format("%f = %e%n", num, num);
}
}
public static void main(String[] args) {
double num;
System.out.println(" [ -3.0 에서 3.0 까지 ]");
for (num = -3.0; num <= 3.0; num++)
System.out.format("%.2f = %e%n", num, num);
System.out.println();
System.out.println(" [ 0.0 에서 100.0 까지 ]");
for (num = 0.0; num <= 100.0; num += 10.0)
System.out.format("%.2f = %e%n", num, num);
System.out.println();
System.out.println(" [ 천 단위 이상 ]");
num = 1000.0;
System.out.format("%.2f = %e%n", num, num);
num = 10000.0;
System.out.format("%.2f = %e%n", num, num);
num = 30000.0; // 그리고 e 를 대문자 E 로 출력
System.out.format("%.2f = %E%n", num, num);
num = 35555.0;
System.out.format("%.2f = %e%n", num, num);
num = 35555.123456789;
System.out.format("%.2f = %e%n", num, num);
num = 35555.123456789; // 정밀도 높여 출력
System.out.format("%.16f = %.16e%n", num, num);
System.out.println();
System.out.println(" [ 양수/음수 ]");
num = 35555.0;
System.out.format("%.2f = %e%n", num, num);
num = -35555.0;
System.out.format("%.2f = %e%n", num, num);
System.out.println();
System.out.println(" [ 1보다 작은 수 ]");
num = 1.0;
System.out.format("%f = %e%n", num, num);
num = 0.0;
System.out.format("%f = %e%n", num, num);
num = 0.1;
System.out.format("%f = %e%n", num, num);
num = 0.01;
System.out.format("%f = %e%n", num, num);
num = 0.005;
System.out.format("%f = %e%n", num, num);
num = 0.99;
System.out.format("%f = %e%n", num, num);
num = -0.99;
System.out.format("%f = %e%n", num, num);
}
}
가령 3.555500e+04 이런 숫자가 있을 때
10의 4승에, 3.555500 을 곱하면 35555.00 이 나오게 됩니다.
따라서 3.555500e+04 = 35555.00 입니다.
컴파일 및 실행 결과 화면:
D:\Z>javac Foo.java && java Foo
[ -3.0 에서 3.0 까지 ]
-3.00 = -3.000000e+00
-2.00 = -2.000000e+00
-1.00 = -1.000000e+00
0.00 = 0.000000e+00
1.00 = 1.000000e+00
2.00 = 2.000000e+00
3.00 = 3.000000e+00
[ 0.0 에서 100.0 까지 ]
0.00 = 0.000000e+00
10.00 = 1.000000e+01
20.00 = 2.000000e+01
30.00 = 3.000000e+01
40.00 = 4.000000e+01
50.00 = 5.000000e+01
60.00 = 6.000000e+01
70.00 = 7.000000e+01
80.00 = 8.000000e+01
90.00 = 9.000000e+01
100.00 = 1.000000e+02
[ 천 단위 이상 ]
1000.00 = 1.000000e+03
10000.00 = 1.000000e+04
30000.00 = 3.000000E+04
35555.00 = 3.555500e+04
35555.12 = 3.555512e+04
35555.1234567890000000 = 3.5555123456789000e+04
[ 양수/음수 ]
35555.00 = 3.555500e+04
-35555.00 = -3.555500e+04
[ 1보다 작은 수 ]
1.000000 = 1.000000e+00
0.000000 = 0.000000e+00
0.100000 = 1.000000e-01
0.010000 = 1.000000e-02
0.005000 = 5.000000e-03
0.990000 = 9.900000e-01
-0.990000 = -9.900000e-01
D:\Z>
[ -3.0 에서 3.0 까지 ]
-3.00 = -3.000000e+00
-2.00 = -2.000000e+00
-1.00 = -1.000000e+00
0.00 = 0.000000e+00
1.00 = 1.000000e+00
2.00 = 2.000000e+00
3.00 = 3.000000e+00
[ 0.0 에서 100.0 까지 ]
0.00 = 0.000000e+00
10.00 = 1.000000e+01
20.00 = 2.000000e+01
30.00 = 3.000000e+01
40.00 = 4.000000e+01
50.00 = 5.000000e+01
60.00 = 6.000000e+01
70.00 = 7.000000e+01
80.00 = 8.000000e+01
90.00 = 9.000000e+01
100.00 = 1.000000e+02
[ 천 단위 이상 ]
1000.00 = 1.000000e+03
10000.00 = 1.000000e+04
30000.00 = 3.000000E+04
35555.00 = 3.555500e+04
35555.12 = 3.555512e+04
35555.1234567890000000 = 3.5555123456789000e+04
[ 양수/음수 ]
35555.00 = 3.555500e+04
-35555.00 = -3.555500e+04
[ 1보다 작은 수 ]
1.000000 = 1.000000e+00
0.000000 = 0.000000e+00
0.100000 = 1.000000e-01
0.010000 = 1.000000e-02
0.005000 = 5.000000e-03
0.990000 = 9.900000e-01
-0.990000 = -9.900000e-01
D:\Z>
▶▶ 자바/Java] printf(), sprintf() 함수 포맷 출력 구현, System.out.println()으로
지수 표기법 온라인 변환기: ▶▶ 지수 표기법 변환기, 과학적 숫자를 보통 숫자로 변환; Exponential Scientific Notation Convert
tag: java
자바 | Java
<< Home