백엔드/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

여기서 참고해보기 변수는 필드, 함수는 메소드로 참고하여서 번역 후 활용 해보기.