티스토리 뷰

개체를 사용해야하는 경우 (여러 가지 이유로 사용하지 않는 것이 좋습니다) 이렇게 할 수 있습니다.

Number a = 33;
Number b = 0.33;

Number d = a.doubleValue() / 100.0;
Number e = b.doubleValue() / 100.0;

그러나 실제로는 숫자에 대한 객체 만 사용해야합니다.

  • 값은 null
  • 예를 들어 일반 유형으로 사용하고 있습니다. List<Double>
  • 예를 들어 프리미티브가없는 유형을 사용하고 있습니다. BigDecimal
-------------------

개체가 아닌 복식을 사용해야합니다.

    final int a = 33;
    final double b = 0.33;
        final double d = a / 100.0;
            final Double e = b / 100.0;
            
-------------------

Java에서는 int 와 같은 프리미티브 double로 캐스트 할 수 있지만 IntegerDouble같은 래퍼 클래스로 동일한 작업을 수행 할 수 없습니다 .

귀하의 예에서 33은 Integer로 자동 박싱되며 Double로 캐스팅 할 수 없습니다. 특정한 경우 다음과 같은 방법으로 예외를 피할 수 있습니다.

    Object a = 33;

    if(a instanceof Number) {
            Double d = ((Number) a).doubleValue() / 100;
                    System.out.println(d);
                        }
                        

그러나 문제를 해결하는 가장 좋은 방법은 없습니다. 기본 int 및 double 또는 해당 래퍼 Integer 및 Double을 사용하는 것이 좋지만 Object는 사용하지 않는 것이 좋습니다.



출처
https://stackoverflow.com/questions/39917295
댓글
공지사항
Total
Today
Yesterday
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30