[C++] 실수 타입의 Round-trip conversion

김정현·2024년 1월 13일
0

Etc

목록 보기
1/2

💡 Round-trip conversion

포맷 A의 데이터를 포맷 B로 변환 후, 다시 본래 포맷 A로 돌아오는 과정 (Ex. double -> text -> double)


C++에서는 실수 → Text → 실수 Round-trip에서 값 손실을 막기 위해,
std::numeric_limits 클래스 멤버 상수를 활용할 수 있다.

  • std::numeric_limits<T>::max_digits10

    • 부동 소수점 수를 10진수 문자열로 변환했다가 다시 부동 소수점 수로 변환했을 때, 원래의 부동 소수점 수와 동일하게 유지되는 최소 자릿수.
    • Ex) std::numeric_limits<double>::max_digits10은 17인데,
      이는 double 타입의 부동 소수점 수를 10진수 문자열로 변환했다가
      다시 double로 변환했을 때, 원래의 수와 동일하게 유지되기 위해 필요한 최소 자릿수가 17자리라는 의미. (float는 9자리)

Reference

profile
하고풍거(河鼓風去) 삭다하자(削多㰤慈)

0개의 댓글