Double to int cast
처음에 n = 10이라 정의하고 m = 100이라 정의를 한 다음에 간단한 if문을 만들어서 pow(n, 2) (n의 제곱) 과 m이 같은 수인지 확인하였다. 하지만 알다시피 pow(a, b)의 타입은 double이다. 그래서 (int) pow(n, 2)를 해서 비교를 했더니 ...??? 99가 되는것이었다. 찾아보니 수가 0보다 크면 0.5를 더하고 0보다 작으면 0.5를 빼라고.. 그래서 위에 ROUND_2_INT(f) 라는 함수를 정의 해줬다. (물론 제일 쉬운 방법은 round() 함수를 쓰는것이다 ㅋㅋㅋ) #include #include #include #include #define ROUND_2_INT(f) ((int) (f >= 0.0 ? (f+0.5):(f-0.5))) //when usin..
c++
2020. 7. 18. 18:16