[Java]20331データ変換
前回の投稿に続いて、Javaデータに関連する可能性のある混同部分を整理します.
(例と説明はYouTubeライフコードのJava入門コースを参照してまとめた.)自動変換(暗黙変換)
int b = 100.0F;
int b = (int)100.0F;
(例と説明はYouTubeライフコードのJava入門コースを参照してまとめた.)
double a = 3.0F;
위의 코드는 double 타입의 변수 a에 float타입의 값을 대입하고 있다 이때 3.0F의 값은 자동으로 doulbe타입으로 형 변환이 일어난다.
이것이 가능한 이유는 double 타입이 float타입보다 더 많은 수를 표현할 수 있기 때문이다.
(double > float)
타입을 변경해도 정보의 손실이 일어나지 않을때, 자동 형 변환이 일어난다.
float a = 3.0;
반대로 위의 예제는 오류가 발생한다. 상수 3.0은 상수이지만 double형이다. 이 값을 표현범위가 적은 float에 넣으려고 하기 때문에 오류가 발생하였다.
※자동형변환의 원칙 : 표현범위가 좁은 데이터 타입에서 넓은 데이터 나입으로의 변환만 허용된다.
![](https://media.vlpt.us/images/enoch0403/post/9117832b-9f48-44f4-98c2-127ac037b9cf/image.png)
위의 이미지는 자동 형 변환이 일어나는 규칙을 보여준다.
byte타입은 short가 될 수 있지만 short는 byte 타입이 될 수 없다.
long은 float가 될 수 있지만 float은 long이 될 수 없다.
2. 명시적 형 변환
자동 형 변환이 적용되지 않는 경우 수동으로 형 변환을 해야 한다.
이를 명시적 형 변환이라고 한다.
아래의 코드는 오류가 발생하는데. 자동 형 변환이 이루어지지 않기 때문이다.
float a = 100.0;int b = 100.0F;
위의 코드를 직접 수정하여 오류를 고쳐보면 아래와 같다.
float a = (float)100.0;int b = (int)100.0F;
Reference
この問題について([Java]20331データ変換), 我々は、より多くの情報をここで見つけました https://velog.io/@enoch0403/Java-220331-데이터-형-변환テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol