1. double유형

Java는 double실수(소수) 숫자 작업을 위한 유형을 제공합니다. 메모리를 차지하며 8 bytes(유형의 두 배 ) ~ ~ ~까지 int범위의 값을 저장할 수 있습니다 . 비교를 위해: 유형은 에서 까지 범위의 값을 저장할 수 있습니다 .-1.7*10308+1.7*10308int-2*109+2*109

실수에서 소수 부분은 소수점 뒤에 씁니다. 예를 들어 123.456, 2.5, 100.00 또는 0.01입니다. 컴퓨터가 이러한 숫자를 처리할 때 부동 소수점 숫자 라고 합니다 .

그건 그렇고, 유형 외에도 유형(크기가 4바이트에 불과함) double도 있습니다 . 그 이름은 부동 소수점float 에서 유래합니다 . 그리고 그 이름은 double float 에서 유래했습니다 . A 는 a 보다 두 배 큽니다 . 배정밀도 부동 소수점 숫자 라고도 합니다 .doubledoublefloat8 bytes4


2. double유형 만들기

double 유형은 실수를 저장하는 데 사용됩니다. 코드에서 실수를 저장할 수 있는 변수를 만들려면 다음과 같은 문을 사용해야 합니다.

double name;
double유형 만들기

여기서 name은 변수의 이름입니다. 예:

성명 설명
double price;
실제 price변수가 생성됩니다.
double weight;
실제 weight변수가 생성됩니다.
double lightSpeed;
실제 lightSpeed변수가 생성됩니다.

유형 과 마찬가지로 int속기를 사용하여 여러 변수를 동시에 만들 수 있습니다 double.

double name 1, name 2, name 3;
여러 double변수 생성

그리고 즉시 값을 할당합니다.

double name 1 = value 1, name 2 = value 2, name 3 = value 3;
double여러 변수 생성 및 초기화

예:

성명 메모
double price = 5.0;
변수 저장소5.0
double weight = 2;
변수 저장소2.0
double x = 1.0, y = 2.0, z = 3.0;

3. 정수와 실수 할당

int정수가 변수에만 할당되고 실수가 변수에만 할당될 수 있다면 좋지 않을 것입니다 double. 우리는 두 종류의 숫자 사이를 변환할 수 있기를 원합니다. 그리고 Java는 이 기능을 제공합니다.

첫째, 실수와 정수 모두 double변수에 할당될 수 있습니다. 정수를 할당할 때 단순히 실수로 변환됩니다. 물론 그 과정에서 어느 정도 정확도가 떨어질 수 있습니다.

성명 메모
double price = 5.0;
변수 저장소5.0
double weight = 2;
변수 저장소2.0
int t = 1000;
double x =  t * t;

변수 x저장소1000000.0

둘째, 어떤 식에 정수와 실수가 연루되어 있다면 그 정수를 먼저 실수로 변환하고 나서야 다른 실수와의 연산을 수행한다.

성명 메모
int t = 1000;
double x = t * 5.0;

변수 x저장소5000.0
System.out.println(5 * 2);
번호가 10화면에 표시됩니다
System.out.println(5 * 2.0);
번호가 10.0화면에 표시됩니다

마지막으로 int변수에 실수를 할당하는 것도 가능합니다. 이렇게 하면 실수의 소수 부분이 버려집니다. 숫자는 가장 가까운 정수로 내림됩니다.

또한 컴파일러는 프로그래머가 발생하는 상황을 명시적으로 문서화하도록 요구합니다(다른 프로그래머가 소수 부분이 삭제되고 있음을 이해하도록 하기 위해). 일반적으로 이러한 변환은 코드에서 다음과 같습니다.

integer_variable = (int)(real_number);
int변수 에 실수 할당

예:

성명 메모
int x = (int)(5.5);
변수 x저장소5
double a = 5.999;
int x = (int)(a);
변수 x저장소5
double a = 5.999;
int b = 2;
int x = (int)(a * b);
변수 x저장소11


4. Java에서 정수와 실수 나누기

정수를 정수로 나눌 때 나머지는 항상 버려집니다. 그러면 를 얻기 위해 5어떻게 나눌 수 있습니까 ?22.5

처음에는 올바른 옵션인 것 같습니다.

double d = 5 / 2;

그러나 그렇게 간단하지 않습니다. 여기서 문제는 Java 머신이 먼저 값을 계산한 5 / 2다음 그 결과를 d변수에 할당한다는 것입니다. 그리고 5 / 2연산은 정수 나눗셈입니다. 그 의미는 d 포함하거나 2더 정확하게 말하면,2.0

올바른 해결책은 나눗셈에 포함된 숫자 중 적어도 하나를 실수 (즉, 소수점 포함)로 쓰는 것입니다.

double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;

각 표현식에는 다음이 d 포함됩니다.2.5

하지만 변수로 작업한다면 어떨까요? 다음과 같은 코드가 있다면 어떨까요?:

int a = 5;
int b = 2;
double d = a / b;

여기에 매끄러운(명백한) 솔루션이 있습니다. Java 머신이 변수에 실수로 1을 곱하여 변수를 실수로 변환하도록 합니다( 1.0) .

int a = 5;
int b = 2;
double d = a * 1.0 / b;

곱셈과 나눗셈은 우선 순위가 동일하며 왼쪽에서 오른쪽으로 수행됩니다. 즉, 1.0을 곱하는 위치가 중요합니다.

예:

성명 실행 순서 결과
int a = 5;
int b = 2;
double d = 1.0 * a / b;
(1.0 * a) / b; 2.5
int a = 5;
int b = 2;
double d = a * 1.0 / b;
(a * 1.0) / b; 2.5
int a = 5;
int b = 2;
double d = a / b * 1.0;
(a / b) * 1.0; 2.0