자답합니다.
round 함수를 쓰기전에,
미리 round 함수의 인자에 total/2를 전달 한다면 정수 끼리의 연산이므로
total/2의 결과는 소수점이 버려지게되며,
이는 round 함수를 쓰는 의미가 없어집니다. 소수점 아래가 존재하지 않기 때문입니다.
그래서 total을 미리 double로 형변환 시키고 계산하면됩니다. 아래와 같이
round((double)total/2)
17245번 - 서버실
자답합니다.
round 함수를 쓰기전에,
미리 round 함수의 인자에 total/2를 전달 한다면 정수 끼리의 연산이므로
total/2의 결과는 소수점이 버려지게되며,
이는 round 함수를 쓰는 의미가 없어집니다. 소수점 아래가 존재하지 않기 때문입니다.
그래서 total을 미리 double로 형변환 시키고 계산하면됩니다. 아래와 같이
round((double)total/2)
댓글을 작성하려면 로그인해야 합니다.
oh20020409 2년 전
total 의 자료형을 long long으로 바꾸면,
답이 틀리게 나옵니다.
나눗셈이 이상하게 계산 된 것 같은데요.
'double'에서 '__int64'(으)로 변환하면서 데이터가 손실될 수 있습니다. 혹시 이것과 관련이 있는것인지?
왜 틀렸는지 알려주시면 감사하겠습니다.