백엔드/JAVA
형변환 연산자 77p
민밥통
2023. 10. 10. 12:02
package myproject;
//명시적 자료형 변환 explicit
//묵시적 자료형 변환 implicit date type conversion
public class CastingType {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 100;
float f = 3.14f; // 3.14는 double형으로 인식됨. 그런데 저장공간은 float형이므로
// Left value(l-value)와 Right value(r-value)의 type이 불일치함.
i = (int) f; // 큰 float을 작은 int에 못 넣는 오류. 그래서 명시적 형변환 (int) 필요함
System.out.println("i="+ i + "," + "f=" +f);
i = 5;
f = i;
f = (float) i; // 작은 type이 큰 type에 자동으로 변환되어 저장됨. float이 됨. (float)으로 확실하게 적는게 좋음
System.out.println("i="+ i + "," + "f=" +f);
}
}
//Math.round() 반올림하기
double pi = 3.1415927;
double shortPi = Math.round(pi);
System.out.println(shortPi);
//난수 출력 random
double rnd = Math.random();
System.out.println("난수:" + rnd);
//한 자리 정수/난수 출력
double r = rnd * 10;
int k = (int) r;
// System.out.println("r=" + r + "," + "k=" + k);
System.out.println("정수:" + k);
System.out.println("한 줄:" + (int)(Math.random()*10));
System.out.println("r=" + r + "," + "k=" + k);
rud >> 난수로 나와서 여러 랜덤의 0.nnnnnnnnnn 숫자가 나옴.
이걸 한자리 정수로 변경하기 위해서는
10을 곱해야 되겠음!
위와같이 계산법은 이렇게 흘러감
BUT 후임자(인수인계)가 편안하게 하려면 1줄로 활용해서 하려면,
(int) (Math.random() * 10)
정수로 명시적인 형변환을 하고, 난수를 실행, 정수는 소수점 왼쪽까지 자르기 때문에 곱하기 10을 해줌.
Math.round() > 83페이지 참고하기.
난수를
https://docs.oracle.com/javase/8/docs/api/
Java Platform SE 8
docs.oracle.com
여기서 참고해보기 변수는 필드, 함수는 메소드로 참고하여서 번역 후 활용 해보기.