자바에서는 소수점 계산 시 IEEE 754 부동소수점 방식으로 계산해서, 값의 근사치를 출력한다. 이에 정확한 계산을 위해서는 BigDecimal을 사용한다.
나는 아래와 같은 방식으로 Math.round()를 통해 소수점 반올림하는 형태로 해결했다.
System.out.println("현재까지 총 판매된 금액은 [ W "+Math.round((revenue*100))/100.0 +"] 입니다.\n");
//소수점 둘째자리까지 나타내고 반올림 ( 자바는 IEEE 754 부동 소수점 방식 - 근사치 제공에 의해 소수 오차 발생 방지)
public int getResponse(int numbering, ArrayList<Menu> list){}
나는 ArrayList<Product>
타입의 인자값도 위의 메서드의 매개변수에 넣어 메서드를 재활용하고싶었다.
<T extends Menu>
: 어떤타입 T 인자로 받을 종류는 Menu클래스 이거나, 상속받은 하위타입만 받을 수 있다. public <T extends Menu> int getResponse(int numbering, ArrayList<T> list) throws InterruptedException {