Java doubleValue(), byteValue() primitive type 변환 메소드, 유의점
Java에서는 primitive type 간 변환을 도와주는 여러 메소드들이 있다.
doubleValue()
나 byteValue()
와 같은 메소드들을 소스 상에서 여러 번 보았을 텐데, 이들은 해당 primitive type을 다른 타입으로 변환해준다.javapublic class TypeConversionExample {
public static void main(String[] args) {
// doubleValue() 예제
int intValue = 15;
double doubleValue = (double) intValue; // int를 double로 변환
System.out.println("int를 double로 변환: " + doubleValue); //
int를 double로 변환: 15.0// byteValue() 예제
Double myDouble = 200.75; // byteValue()를 이용해 byte로 변환
byte myByte = myDouble.byteValue();
// 결과 출력 System.out.println("Double 값: " + myDouble); // Double 값: 200.75
System.out.println("Byte로 변환된 값: " + myByte); // Byte로 변환된 값: -56
즉, doubleValue() 는 값을 double로 변환할 때 사용, byte는 형태를 byte 형태로 변환할 때 사용한다.
여기서 doubleValue()
는 일반적으로 int
, float
, long
등의 값을 double
로 변환할 때 사용되기 때문에 데이터 유실에 크게 주의가 필요하지는 않다. (더 큰 형태로 변환하는 것이기 때문)
반면, byteValue()
는 반대로 큰 데이터 타입인 double
, int
, float
등을 작은 byte
타입으로 변환할 때 쓰이기 때문에 주의가 필요하다. 변환 과정에서 데이터 손실이 발생할 수 있으므로 범위를 벗어나는 값은 의도하지 않은 결과를 초래할 수 있다. 예시에서 보듯이 double value 200.75는 byte로 변환되면서 -56이라는 의도하지 않은 값을 출력하게 된다.
이런 메소드들은 데이터 유실 없이 안전하게 변환이 필요한 경우에 사용해야 한다. 만약 데이터의 손실 없이 변환하고 싶을 때는 wrapper 클래스인 Integer
, Double
등의 메소드를 사용하는 것이 좋다.