정수부의 자리수가 조금 큰 부동소수점수(64비트 double 포맷의 수)를 십진수 표현으로 출력해 보았습니다.
십진수로 표현하면 유효자리수 개수가 약 14~15개 정도인데,
17개로 자르고 그 뒤는 모두 0으로 출력합니다.
C# 의 것과 비슷하지만 자르는 유효수자 개수가 다릅니다.
Pyhon 이나 C/C++ 의 경우는 자르지 않고 소수점 위 부분을 모두 출력합니다.
물론 Java, C#, Python, C, C++ 어느 프로그램 언어든
십진수로 표현할 때 자르는 방법이나 유효수자 아래 부분을 채우는 방법은 다르지만,
덧셈, 뺄셈, 곱셈, 나누셈, 기타 등등에서 유효수자 아래부분의 처리 결과는 대동소이합니다.
// Filename: Test_Of_Native_Double_Precison_001.java
//
//
// Compile: javac -d . Test_Of_Native_Double_Precison_001.java
// Execute: java Test_Of_Native_Double_Precison_001
// Output:
// Math.pow(2, 128) = 340282366920938460000000000000000000000.000000
// Math.pow(2, 128) = 340282366920938460000000000000000000000
// new BigInteger("2").pow(128) = 340282366920938463463374607431768211456
//
//
// ------------------------------------------------------
// 출처: https://scripting.tistory.com/
// ------------------------------------------------------
import java.math.BigInteger;
import java.util.Arrays;
public class Test_Of_Native_Double_Precison_001
{
public static void test_01()
{
double y = Math.pow(2, 128);
System.out.printf(" Math.pow(2, 128) = %f\n", y);
System.out.printf(" Math.pow(2, 128) = %.0f\n", y);
BigInteger z = new BigInteger("2").pow(128);
System.out.printf("new BigInteger(\"2\").pow(128) = %s\n", z);
}
public static void main(String[] args)
{
test_01();
System.out.println();
}
}
'프로그래밍 > Java' 카테고리의 다른 글
다시 생각해 보는 Java 의 Native Number (0) | 2023.10.22 |
---|---|
32bit 윈도우 10에 최신 JDK 1.8 Update 221 설치하기 (0) | 2019.09.12 |
한글 윈도우 8.1 의 Cygwin64 에서 javac 와 java 사용할 때의 인코딩 옵션 (0) | 2014.01.25 |
이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with Java (0) | 2013.08.05 |
Java 언어로 간단한 피보나치 수 테이블 만들기 (0) | 2013.03.14 |