programing

Java에서 Long에서 Double로 변환

nasanasas 2020. 10. 5. 08:00
반응형

Java에서 Long에서 Double로 변환


Long데이터 유형을 Double또는 로 변환하는 방법이 double있습니까?

예를 들어, 나는 변환 할 필요가 15552451LA를 double데이터 유형입니다.


간단히 할 수 있습니다.

double d = (double)15552451L;

또는 Long 객체에서 다음과 같이 두 배를 얻을 수 있습니다.

    Long l = new Long(15552451L);
    double d = l.doubleValue();

간단한 캐스팅?

double d = (double)15552451L;

바이너리 변환을 찾고 있습니까?

double result = Double.longBitsToDouble(15552451L);

이것은 리터럴 double과 동일한 비트 패턴을 제공합니다 long.

바이너리 또는 16 진수 리터럴이 여기에서 유용합니다. 여기 몇 가지 예가 있어요.

double nan = Double.longBitsToDouble(0xfff0000000000001L);
double positiveInfinity = Double.longBitsToDouble(0x7ff0000000000000L);
double positiveInfinity = Double.longBitsToDouble(0xfff0000000000000L);

( Double.longBitsToDouble (long) 참조 )

당신은 또한 long다시 얻을 수 있습니다

long bits = Double.doubleToRawLongBits(Double.NaN);

( Double.doubleToRawLongBits (double) 참조 )


이미 언급했듯이 단순히 long에서 double로 캐스팅 할 수 있습니다. 그러나 long에서 double 로의 변환 은 Java에서 축소 변환 이므로 주의하십시오 .

double 형식에서 long 형식으로 변환하려면 64 비트 부동 소수점 값에서 64 비트 정수 표현으로 간단하게 변환해야합니다. 실제 런타임 값에 따라 정보가 손실 될 수 있습니다.

예를 들어 다음 프로그램은 0이 아닌 1을 인쇄합니다.

    long number = 499999999000000001L;
    double converted = (double) number;
    System.out.println( number - (long) converted);

Long i = 1000000;
String s = i + "";
Double d = Double.parseDouble(s);
Float f = Float.parseFloat(s);

이렇게하면 문자열 값을 Double 또는 Float 또는 Int로 쉽게 변환 할 수 있으므로 Long 유형을 Double 또는 Float 또는 Int로 문제없이 변환 할 수 있습니다.


긴 날짜 유형 이란 무엇을 의미 합니까?

long을 double로 캐스팅 할 수 있습니다.

double d = (double) 15552451L;

다음과 같이 시도 할 수 있습니다.

long x = somevalue;

double y = Double.longBitsToDouble(x);

당신에게 좋은 것 같아요.

BigDecimal.valueOf([LONG_VALUE]).doubleValue()

이 코드는 어떻습니까? :디

참고 URL : https://stackoverflow.com/questions/3724830/conversion-from-long-to-double-in-java

반응형