알고리즘 연습 사이트
www.hackerrank.com
Day 2:Operators
* Java 자료형의 연산
서로 다른 자료형끼리의 연산은 작은 자료형이 큰 자료형 쪽으로 자동 변환이 일어난다.
따라서 아래와 같은 다른 자료형끼리 연산 시 double 형이 큰 쪽이므로 결과가 double형으로 나타나게 된다.
double d1 = 10.25;
int i1 = 10;
System.out.println(d1 * i1 /100);
System.out.println(d1 + i1 );
result
1.025
20.25
큰 자료형에서 작은 자료형으로 강제 변환을 할 때에는 데이터 손실이 일어난다.
* 자료형 크기 참고
byte(1byte) < short(2byte) < int(4byte) < long(8byte) < float(4byte) < double(8byte)
그외 boolean(논리형,1byte) , char (문자형,2byte)
두번째 문제 답은 아래와 같이 작성하였다.
result를 double 로 지정하여 값 손실이 없게 한 후 Math.round 메소드로 결과를 반올림 한 후에 값 출력 요구사항은 소수점이 없어야 했으므로, int로 강제 캐스팅 처리하였다.
static void solve(double meal_cost, int tip_percent, int tax_percent) {
double result = meal_cost
+ ( meal_cost * tip_percent / 100)
+ ( meal_cost * tax_percent / 100 ) ;
System.out.println((int)Math.round(result));
}
댓글 없음:
댓글 쓰기