int 변수를 double로 변환해야합니다.
중복 가능성 :
Java 정수 분할 : double을 어떻게 생성합니까?
제 친구가 수업 과제로 어떤 계산을하려고하는데 문제가 생겼는데 ... 도와 주셨으면합니다.
문제는 그가 사용자로부터 int로 입력을 받는다는 것입니다 (작업의 일부 여야합니다). 그는 아래 코드에서 더블로 변환하려고했지만 작동하지 않습니다. 결과는 어쨌든 int입니다.
double firstSolution = ((b1 * a22 - b2 * a12) / (a11 * a22 - a12 * a21));
double secondSolution = ((b2 * a11 - b1 * a21) / (a11 * a22 - a12 * a21));
더 많은 설명이 필요하면 물어 볼게요. 미리 감사드립니다!
나누기 연산자에 대한 인수 중 하나 (또는 둘 다)를 다음과 같이 캐스팅해야합니다 double
.
double firstSolution = (b1 * a22 - b2 * a12) / (double)(a11 * a22 - a12 * a21);
동일한 계산을 두 번 수행하고 있으므로 코드를 리팩토링하는 것이 좋습니다.
double determinant = a11 * a22 - a12 * a21;
double firstSolution = (b1 * a22 - b2 * a12) / determinant;
double secondSolution = (b2 * a11 - b1 * a21) / determinant;
이것은 같은 방식으로 작동하지만 이제는 암시 적 캐스트가 이중으로 있습니다. 행이 변환 int
으로는 double
(A)의 예는 확대 변환 프리미티브 .
int를 double 로 캐스팅 하여 double로 변환 할 수 있습니다 .
다음과 같이이 메커니즘을 사용하여 int를 double로 변환 할 수 있습니다.
int i = 3; // i is 3
double d = (double) i; // d = 3.0
대안 (Java의 자동 유형 인식 사용) :
double d = 1.0 * i; // d = 3.0
코드에서 이것을 구현하는 것은 다음과 같습니다.
double firstSolution = ((double)(b1 * a22 - b2 * a12) / (double)(a11 * a22 - a12 * a21));
double secondSolution = ((double)(b2 * a11 - b1 * a21) / (double)(a11 * a22 - a12 * a21));
또는 double (1.0) 유형의 하드 매개 변수를 사용하여 다음과 같이 Java가 작동하도록 할 수 있습니다.
double firstSolution = ((1.0 * (b1 * a22 - b2 * a12)) / (1.0 * (a11 * a22 - a12 * a21)));
double secondSolution = ((1.0 * (b2 * a11 - b1 * a21)) / (1.0 * (a11 * a22 - a12 * a21)));
행운을 빕니다.
변수를 캐스팅하거나 Integer
메서드를 호출 하여 클래스 를 사용해야한다고 생각합니다 doubleValue()
.
다른 사람들이 이미 말했듯이 캐스팅을 사용하거나 int 변수 중 하나에 다음을 곱하십시오 1.0
.
double firstSolution = ((1.0* b1 * a22 - b2 * a12) / (a11 * a22 - a12 * a21));
참고 URL : https://stackoverflow.com/questions/13252903/i-need-to-convert-an-int-variable-to-double
'Program Tip' 카테고리의 다른 글
헤더 파일의 변수 선언 (0) | 2020.12.10 |
---|---|
파이썬 함수에서 데코레이터를 제거하는 방법 (0) | 2020.12.10 |
Android SQLite 삽입 또는 업데이트 (0) | 2020.12.10 |
matplotlib Python에서 다른 막대 색상 설정 (0) | 2020.12.10 |
bash 스크립트에서 찾기 결과를 어떻게 처리 할 수 있습니까? (0) | 2020.12.10 |