java
[Java] 숫자 양수< - >음수 변환 총 정리
.java
2020. 4. 5. 15:05
반응형
1번째 방법 (n * -1)
양수 -> 음수
int a = 119;
System.out.println(a * -1 );
결과
-119
음수 -> 양수
int b = -119;
System.out.println(b * -1 );
결과
119
참고
정수형이 아닌 실수형도 다 됩니다.
double c = 3.14;
System.out.println(c * -1 );
결과
-3.14
2번째 방법 Math.abs(n)
※ 주의
2번째 방법은 음수-> 양수로만 변환이 가능합니다.
음수 -> 양수
int a2 = -119;
System.out.println(Math.abs(a2));
결과
119
양수를 Math.abs에 사용한다면?
int b2 = 119;
System.out.println(Math.abs(b2));
결과
119
참고
정수형이 아닌 실수형도 다 됩니다.
double c2 = -3.14;
System.out.println(Math.abs(c2));
결과
3.14
기타 (주의 할 점)
int test = -2147483648;
만약 이와 같은 값이 있다고 하면
System.out.println(test * -1 );
System.out.println(Math.abs(test));
이 두가지 방법을 사용하더라도 양수로 변하지 않습니다.
이유는 int형 범위가 -2147483648에서 2147483647이기 때문입니다.
양수는 2147483647까지인데 2147483648의 값을 뱉으라고 하니 뱉을 수 없는 거죠.
사실 당연한 건데 오류를 뱉지 않고 그냥 -2147483648 값을 뱉기 때문에 밤샘 코딩을 하신 분들은
뇌가 파업하기 때문에 멘붕 올 수도 있습니다.
해결
방법 1.
long test = -2147483648;
int -> long 타입으로 변경해준다.
방법 2.
int test = -2147483647;
-2147483648에서 1을 뺀 -2147483647로 변경해준다.
반응형