자바에서는 자바.
부동 소수점 데이터 유형에는 두 가지 유형이 있습니다.
- 부동 소수점 데이터 유형
- 이중 데이터 유형
float 및 double은 모두 소수 값을 저장하는 부동 소수점 숫자를 나타냅니다.
부동 소수점 데이터 유형 | 가치 | 크기(비트)* | 스토리지 요구 사항(바이트) | 기본값 | 정도 | 십진수 | 범위 | 정확성 |
---|---|---|---|---|---|---|---|---|
뜨다 | IEEE 754 부동 소수점 | 32 | 4 | 0.0f | 하나의 | 10진수 6자리 | 3.4e-038 ~ 3.4e+038 | 낮은 |
더블 | IEEE 754 부동 소수점 | 64 | 8 | 0.0일 | 더블 | 10진수 15자리 | 1.7e-308에서 1.7e+308로 | 높은 |
*크기 비트에는 다음이 포함됩니다.
비트 | 뜨다 | 더블 |
---|---|---|
징후 | 1 | 1 |
멱지수 | 8 | 열하나 |
가수 | 23 | 52 |
단정밀도: 그것은 다음과 같이 구성됩니다 하나 부호 비트(S), 여덟 지수 비트(E) 및 이십 삼 가수 비트(M).
np.zeros
배정밀도: 그것은 다음과 같이 구성됩니다 하나 부호 비트(S), 열하나 지수 비트(E) 및 쉰두 가수 비트(M).
부동 소수점 데이터 유형
32비트 단정밀도 IEEE 754(부동 소수점 산술 표준) 부동 소수점 숫자입니다. 이는 십진수 6~7자리의 정밀도를 제공한다는 의미입니다. double 데이터형에 비해 메모리를 적게 차지하므로 메모리를 효율적으로 사용하고 싶을 때 사용됩니다. 부동 소수점 값을 정의하려면 접미사 f 또는 F를 사용해야 합니다. 기본값은 0.0f입니다. 기본적으로 부동 소수점 숫자는 Java에서 double로 처리됩니다.
xor cpp
예를 들어, float 숫자를 다음과 같이 정의한다면:
float height = 167.7
위의 float 변수 선언으로 인해 컴파일 오류가 발생합니다. 접미사 f 또는 F를 추가하여 오류를 수정할 수 있습니다.
float height = 167.7f or float height = 167.7F
이중 데이터 유형
double 데이터 유형은 64비트 배정밀도 IEEE 754 부동 소수점 숫자입니다. 이는 15-16개의 십진수 정밀도를 제공한다는 의미입니다. float 데이터 유형에 비해 더 많은 메모리를 소비합니다. 10진수 값을 저장하는 데 사용됩니다. 기본값은 0.0d입니다. 접미사 d 또는 D를 추가하는 것은 선택 사항입니다. 예:
double price = 987.90D or double price = 987.90d or double price = 987.90
float 대 double 데이터 유형
double 데이터 유형은 float 데이터 유형보다 더 정확합니다. 다음 표에는 float 데이터 유형과 double 데이터 유형의 차이점이 요약되어 있습니다.
기초 | 부동 소수점 데이터 유형 | 이중 데이터 유형 |
---|---|---|
메모리 | 차지하고 있다 4 바이트. | 차지하고 있다 8 바이트. |
정확성 | 그 정확성은 낮은 . | 그 정확성은 높은 . |
정도 | 다음과 같다 단정밀도 (10진수 6~7자리). | 다음과 같다 배정밀도 (십진수 15-16자리). |
사용된 키워드 | 그만큼 뜨다 키워드는 부동 소수점 숫자를 정의하는 데 사용됩니다. | 그만큼 더블 키워드는 배정밀도 숫자를 정의하는 데 사용됩니다. |
래퍼 클래스 | 래퍼 클래스는 다음과 같습니다. java.lang.Float. | 래퍼 클래스는 다음과 같습니다. java.lang.Double. |
기본 데이터 유형 | Java에서는 이를 기본 부동 소수점 숫자로 사용하지 않습니다. | 그것은 기본 부동 소수점 숫자의 데이터 유형입니다. |
데이터 손실 | 있을 것이다 데이터 손실 없음 float를 double로 변환하면. | 있을 것이다 데이터 손실 double을 float로 변환하면. |
용도 | 곳에 사용해야 합니다. 정확도가 낮음 필요하며 저장이 제약됩니다. | 어디에 사용되나요? 더 많은 정확성 필요하며 더 많은 정밀도가 필요합니다. |
접미사 | 그것은 사용한다 에프 또는 에프 접미사로. float 변수를 선언하는 경우 접미사를 추가하는 것이 필수입니다. | 그것은 사용한다 디 또는 디 접미사로. double 변수를 선언하는 경우 접미사를 추가하는 것은 선택 사항입니다. |
대표 | 28시 96분 또는 28.96F | 12.5 또는 12.5D 또는 12.5일 |
float와 double 데이터 유형의 유사점
- 실수는 두 가지 데이터 유형으로 모두 표현될 수 있습니다.
- float 및 double 데이터 유형은 모두 정확하지 않으므로 대략적인 값입니다.
Java에서 어떤 부동 소수점 데이터 유형을 사용해야 합니까?
double은 float보다 더 정확합니다. 따라서 더 정확하고 정확한 결과가 필요한 경우 double을 사용하세요. double을 사용하는 또 다른 이유는 숫자가 float가 제공하는 범위에 맞지 않으면 double을 사용하기 때문입니다. float는 double보다 절반의 공간을 차지하므로 메모리 제약이 있는 경우 사용해야 합니다.
메모리 및 공간 제약이 없고 더 많은 정밀도가 필요한 경우 double over float를 사용하는 것이 좋습니다. 메모리가 문제이고 16자리의 정밀한 십진수 결과가 필요하지 않은 경우 부동 소수점을 사용하는 것이 좋습니다.
다음 두 가지 자바 프로그램 float와 double 데이터 유형의 차이점을 명확하게 보여줍니다.
FloatDataTypeExample.java
public class FloatDataTypeExample { public static void main(String args[]) { float x = 1.0f, y = 3.0f; //defining x and y as float float z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } }
산출:
x/y = 0.33333334
DoubleDataTypeExample.java
public class DoubleDataTypeExample { public static void main(String args[]) { double x = 1.0, y = 3.0; //defining x and y as double double z = x / y; //divides x by y and stores the result in the variable z System.out.println('x/y = ' + z); //prints the result } }
산출:
문자열 자바 비교
x/y = 0.3333333333333333
위의 두 가지 예를 통해 double 데이터 유형은 배정밀도 숫자를 저장하는 데 더 많은 메모리를 사용하고 최대 16자리의 십진수까지 더 정확한 결과를 제공한다는 것이 분명해졌습니다. float 데이터 유형은 단정밀도 숫자를 저장하는 데 더 적은 공간을 차지하며 최대 소수점 이하 6자리까지 결과를 제공합니다.