부동 소수점 데이터 유형은 소수 부분을 포함한 실수를 나타냅니다. 실제 데이터는 복잡하며 실수를 지원하는 데이터 유형이 필요합니다.
1. 부동 소수점 상수 자바의 실수 상수는 숫자와 소수점으로 구성된 십진수 형식의 두 가지 표현 형식이 있으며, 0.123, .123, 123., 123.0과 같은 소수점이 있어야 합니다. 2. 과학적 표기법. 예: 123e3 또는 123E3. 여기서 e 또는 E 앞에는 숫자가 있어야 하고 e 또는 E 뒤의 지수는 정수여야 합니다. 실수 상수는 기계에서 64비트를 차지하며 두 배의 값을 갖습니다. float 유형 값의 경우 f 또는 F를 숫자 뒤에 추가해야 합니다(예: 12.3F). 이는 기계에서 32비트를 차지하고 표현 정밀도가 낮습니다.
부동 소수점 변수에는 float와 double의 두 가지 유형이 있습니다. float는 32비트를 차지하고 값 범위는 3.4e-038~3.4e+038이고, double은 64비트를 차지하고 값 범위는 1.7e-308~1.7e+308입니다. double 유형은 float 유형보다 정밀도가 높고 표현 범위가 더 넓으며 일반적으로 과학 계산과 같이 높은 정밀도가 요구되는 시나리오에 사용됩니다.
Java에서는 float 및 double을 사용하여 부동 소수점 변수를 정의할 수 있습니다. 예를 들어: float f; // 변수 f를 float 유형으로 지정합니다. double d; // 변수 d를 double 유형으로 지정합니다. C 및 C++와 달리 Java에는 부호 없는 정수 유형이 없으며 정수 및 부동 소수점 데이터가 차지하는 메모리 바이트 수를 지정합니다. 이 조항은 Java 프로그램의 보안, 견고성 및 플랫폼 독립성을 보장합니다. 이는 다양한 Java 구현이 정수 및 부동 소수점 데이터를 처리할 때 일관된 동작을 가지며 실행 중인 플랫폼에 관계없이 결과를 예측할 수 있음을 의미합니다.
비트 연산은 일반적으로 하드웨어 제어에 사용됩니다. 표현 자체는 구체적인 의미를 결정할 수 없으며 실제 시나리오와 결합되어야 합니다.
&는 "비트 AND"라고 하며 규칙은 다음과 같습니다: 0&0=0 1&0=0 0&1=0 1&1=1
"|"는 "비트별 OR"이라고 하며, 연산 규칙은 다음과 같습니다: 0|0=0 1|0=1 0|1=1 1|1=1
0x7ffffff를 32비트 바이너리로 표현하면 0000 0000 0111 1111 1111 1111 1111 1111
비트 AND 연산 규칙에 따라 비트의 상위 9비트는 0으로 지워집니다.
0x800000을 32비트 바이너리로 표현하면 0000 0000 1000 0000 0000 0000 0000 0000
비트별 OR 알고리즘에 따라 24번째 비트가 1로 설정됩니다.
생각해보면 ((bits & 0x7fffff)|0x800000)은 상위 9비트 비트를 먼저 지운 다음 24번째 비트를 1로 설정한다는 의미입니다.
상반기에 대해 “
물음표는 굳이 설명할 필요 없겠죠?
부동 소수점 숫자는 연산 후에 오류가 발생하는데 이는 정상적인 현상입니다.
더블에이=2.00-1.10;
더블 b=0.90;
System.out.print(a==b);
결과는 거짓이 됩니다
그래서 부동소수점 숫자의 동등성을 판단할 때 가끔 방법이 사용되는데, 바로
public static boolean isEqual(double a,double b){
최종 이중 엡실론=0.00000001;
Math.abs(a-b) } 결론적으로는 부동소수점 숫자를 처리한 후에 오류가 발생합니다. 0.7799999713897705는 float를 double로 변환해서 발생한 오류이고, 0.78은 float의 정상적인 연산입니다
위 내용은 Java 부동 소수점 상수란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!