IT TIP

Java에서 정수를 float로 어떻게 변환 할 수 있습니까?

itqueen 2020. 10. 18. 19:55
반응형

Java에서 정수를 float로 어떻게 변환 할 수 있습니까?


두 개의 정수 xy. 나는 계산해야하고 x/y결과로 나는 부유물을 얻고 싶습니다. 예를 들어 결과로 3/21.5를 갖고 싶습니다. 나는 쉬운 (또는 유일한) 방법은 그것을 변환하는 것입니다 할 생각 xy플로트 식으로. 안타깝게도 쉬운 방법을 찾을 수 없습니다. 저를 도와 주 시겠어요?


피연산자 중 하나 이상을 float 캐스트 하면됩니다.

float z = (float) x / y;

또는

float z = x / (float) y;

또는 (불필요)

float z = (float) x / (float) y;

꼭 필요한 경우가 아니면 float를 사용하면 안됩니다. 99 %의 경우 double이 더 나은 선택입니다.

int x = 1111111111;
int y = 10000;
float f = (float) x / y;
double d = (double) x / y;
System.out.println("f= "+f);
System.out.println("d= "+d);

인쇄물

f= 111111.12
d= 111111.1111

@Matt의 의견에 따라.

float는 정밀도가 매우 낮고 (6-7 자리) 상당히 쉽게 반올림 오류를 나타냅니다. double에는 또 다른 9 자리의 정확도가 있습니다. float 대신 double을 사용하는 비용은 99 %의 경우 명목상이지만 반올림 오류로 인한 미묘한 버그 비용은 훨씬 더 높습니다. 이러한 이유로 많은 개발자는 부동 소수점을 전혀 사용하지 않는 것이 좋으며 BigDecimal을 강력히 권장합니다.

그러나 합리적인 반올림이 사용되는 경우 대부분의 경우 double을 사용할 수 있습니다 .

이 경우 int x는 32 비트 정밀도를 갖는 반면 float는 24 비트 정밀도를 가지며 1로 나누어도 반올림 오류가 발생할 수 있습니다. 반면 double은 53 비트의 정밀도를 가지고 있으며 이는 합리적으로 정확한 결과를 얻기에 충분합니다.


추가 계산에 참여하기 전에 첫 번째 값을 float로 전송하기 만하면됩니다.

float z = x * 1.0 / y;

방법은 다음과 같습니다.

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int x = 3;
    int y = 2;
    Float fX = new Float(x);
    float res = fX.floatValue()/y;
    System.out.println("res = "+res);
}

만나요!


// 변환하려는 정수

int myInt = 100;

// 정수를 부동으로 캐스팅

float newFloat = (float) myInt

Sameer :

float l = new Float(x/y)

x와 y의 정수 나눗셈을 먼저 계산 한 다음 여기에서 부동 소수점을 생성하므로 작동하지 않습니다.

float result = (float) x / (float) y;

의미 상 가장 좋은 후보입니다.

참고 URL : https://stackoverflow.com/questions/4377842/how-can-i-convert-integer-into-float-in-java

반응형