11720번 - 숫자의 합
처음에는 소수점으로 변환한 후
7, 1234567을 입력 (num, st)
함수 부분
여기서 마지막 소수점 자리에서 double 형 데이터 저장이 7.00000으로 표시는 되지만 실제론 6.999999.....이렇게 되기 때문에
int형으로 소수 부분을 날리면 원래 의도했던 전체 값보다 1 작게 출력이 됩니다.
이 문제를 고치려 하니 문득 방향이 잘못된 것이 아닐까 생각 됩니다.
제가 찾지 못했던 문제나 혹시 다른 방향이 있다면 조언 부탁 합니다.
부동소수점수는 언제나 오차가 생길 걱정을 해야 합니다. double이 그렇게 넓은 범위를 수를 담을 수 있는 건 오차를 내기 때문입니다. 아무리 긴 자리 수라도 오차 없이 깔끔하게 담아낼 수 있는 마법의 자료형이 아닙니다. 자세한 건 부동소수점의 표현 방식을 찾아보시면 될 것 같습니다.
@djm03178
좋은 말 감사합니다
댓글을 작성하려면 로그인해야 합니다.
h99727 5년 전
처음에는 소수점으로 변환한 후
7, 1234567을 입력 (num, st)
함수 부분
여기서 마지막 소수점 자리에서 double 형 데이터 저장이 7.00000으로 표시는 되지만 실제론 6.999999.....이렇게 되기 때문에
int형으로 소수 부분을 날리면 원래 의도했던 전체 값보다 1 작게 출력이 됩니다.
이 문제를 고치려 하니 문득 방향이 잘못된 것이 아닐까 생각 됩니다.
제가 찾지 못했던 문제나 혹시 다른 방향이 있다면 조언 부탁 합니다.