아래의 3가지 방법이 있는데,
- 다른 타입으로 명시적으로 변환하는 캐스팅 (long) a 가 별로 안좋을거라 생각했는데,
- 박싱 후 언방식하는 방식이 더 안좋을 거 같다는 생각이 들었슴당..
생각난김에 짧은 기록 ㅎㅎ
@Test
void test() {
double a = 12.23213;
//명시적 형변환
assertThat((long) a).isEqualTo(12L);
assertThat(1 / (long) a).isEqualTo(1 / 12L);
//박싱 후 언방식 - 비추
assertThat(Double.valueOf(a).longValue()).isEqualTo(12L);
//Math 함수의 사용
assertThat(Math.round(a)).isEqualTo(12L);
}
'Java > Java 문법' 카테고리의 다른 글
[JAVA] 그 날의 주차 구하기 (week of day) (0) | 2023.01.12 |
---|---|
[JAVA] 지역변수 vs 전역변수 (feat. java8 JVM Static Object Heap Area) (0) | 2022.09.26 |
추상클래스의 객체 생성 (추상클래스 인스턴스) - 추상클래스를 사용하는 이유 (0) | 2022.09.19 |
[Java] 스트림에서 오토박싱 (박싱, 언방식)이 일어나는 이유 (0) | 2022.09.16 |
[JAVA] record 불변 객체 타입 (feat Lombok @Value) (0) | 2022.06.02 |