230601(목) TIL

조우진·2023년 6월 1일
0

TIL

목록 보기
11/28

오늘 마주친 문제

자바 소수점 계산 시 오류

자바에서는 소수점 계산 시 IEEE 754 부동소수점 방식으로 계산해서, 값의 근사치를 출력한다. 이에 정확한 계산을 위해서는 BigDecimal을 사용한다.

Try

나는 아래와 같은 방식으로 Math.round()를 통해 소수점 반올림하는 형태로 해결했다.

System.out.println("현재까지 총 판매된 금액은 [ W "+Math.round((revenue*100))/100.0 +"] 입니다.\n"); 
//소수점 둘째자리까지 나타내고 반올림 ( 자바는 IEEE 754 부동 소수점 방식 - 근사치 제공에 의해 소수 오차 발생 방지)

메서드에 다른 ArrayList<객체>값을 인자값으로 넣기

public int getResponse(int numbering, ArrayList<Menu> list){}

나는 ArrayList<Product>타입의 인자값도 위의 메서드의 매개변수에 넣어 메서드를 재활용하고싶었다.

Try

  • 제네릭 활용
    <T extends Menu> : 어떤타입 T 인자로 받을 종류는 Menu클래스 이거나, 상속받은 하위타입만 받을 수 있다.
    즉 Menu의 자식관계에 있는 Product도 같은 메서드에 접근할 수 있었다.
  public <T extends Menu> int getResponse(int numbering, ArrayList<T> list) throws InterruptedException {
profile
공부노트

0개의 댓글