3-1 byte b=10;
char ch='A';
int i=100;
long l=1000L;
(1) b=(byte)i; // int->byte 형변환 필요
(2) ch=(char)b; // char(2byte) > byte(1byte)지만 범위가 달라서 형변환 필요
(3) short s=(short)ch; // short(2byte), char(2byte)지만 범위가 달라서 형변환 필요
(4) float f=(float)l; // float(4byte) long(8byte) float범위가 더 큼 형변환 생략 가능
(5) i=(int)ch; // int(4byte) > char(2byte) 형변환 생략 가능
3-2 True
13
5
False
2
66
B
B
// println은 값을 타입에따라 어떻게 출력할지 결정함 문자타입이므로 저장된 값에 해당하는 문자를 출력한다. 숫자출력X
C
3-3
int num = 456;
System.out.println(num/100*100); // 100으로 나누면 int타입이므로 정수부분만 남고 *100해주면 됨
3-4
int numOfBucket=numOfApple/sizeOfBucket+(numOfApple%sizeOfBucket>0?1:0);
// 삼항연산자를 사용해 나머지>0이면 +1 그렇지 않으면 +0
// int numOfBucket=((int)Math.ceil((double)num/10)); 처음엔 Math.ceil 사용함 올림해주는 함수
//삼항연산자를 생각못하다니 ㅠㅠ
3-5
System.out.println(num>0?"양수":(num<0?"음수":"0"));
3-6
float celcius=(int)(5f/9*((fahrenheit-32)*100)+0.5f)/100f;
// 변환공식 c=5/9*(f-32) 소수점 셋째자리에서 반올림
// 1. c=5/9*(f-32) -> 결과 37.77778 소수점 셋째자리에서 반올림하면 37.78이 나와야함
// 2. c=5/9*((f-32)*100)을 해주면 3777.778 반올림을 해줘야하니 0.5를 더해줌 -> 0.4이하이면 +0.5해도 1을 넘지않음
// 3. 0.5더해서 반올림 해주면 3778.278이 되며 int로 형변환해서 소수점밑을 버림
// 4. 3778에서 /100f를 해주면 37.78로 셋째자리에서 반올림한 값을 얻을 수 있음
// 반올림은 0.5를 더하자
*다음에 다시 풀어보기*
'Study > Java' 카테고리의 다른 글
02. 변수 (0) | 2023.04.02 |
---|---|
01. 자바 (0) | 2023.04.01 |
Chapter 5. 배열 연습문제 (0) | 2023.03.03 |
Chapter 4. 조건문과 반복문 연습문제 (0) | 2023.02.21 |
chapter 2. 변수 연습문제 (0) | 2023.02.13 |
댓글