"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > C++에서 지정된 소수 정밀도를 사용하여 부동 소수점을 문자열로 정확하게 변환하려면 어떻게 해야 합니까?

C++에서 지정된 소수 정밀도를 사용하여 부동 소수점을 문자열로 정확하게 변환하려면 어떻게 해야 합니까?

2024년 11월 18일에 게시됨
검색:415

How Do You Precisely Convert Floats to Strings with Specified Decimal Precision in C  ?

지정된 소수 정밀도를 사용하여 부동 소수점을 문자열로 정확하게 변환

C에서 부동 소수점 숫자를 특정 정밀도를 사용하여 문자열로 변환 소수점 이하 자릿수는 신중한 고려가 필요합니다. 이 가이드에서는 두 가지 일반적인 솔루션인 stringstream과 C 17의 to_chars 함수를 살펴봅니다.

Stringstream 사용

Stringstream은 C에서 문자열을 조작하기 위한 다목적 도구입니다. 부동 소수점을 지정된 정밀도의 문자열로 변환하려면 스트림 조작기를 적용할 수 있습니다:

#include 
#include 

double pi = 3.14159265359;
std::stringstream stream;
stream 
  • std::fixed는 숫자가 소수점과 지정된 자릿수를 사용하여 고정 소수점 표기법으로 표시되도록 합니다.
  • std::setprecision(2)는 표시할 소수 자릿수를 제어합니다.

to_chars 함수 사용(C 17 이상)

For XML 또는 JSON에 데이터를 쓰는 것과 같은 보다 기술적인 목적을 위해 C 17에 도입된 to_chars 함수는 간결한 솔루션을 제공합니다.

#include 
#include 

double pi = 3.14159265359;
std::array buffer;
auto [ptr, ec] = std::to_chars(buffer.data(), buffer.data()   buffer.size(), pi,
                               std::chars_format::fixed, 2);
if (ec == std::errc{}) {
    std::string s(buffer.data(), ptr);
}
else {
    // Error handling
}
  • std::to_chars 함수는 버퍼(std::array 형식), 숫자 및 형식 사양(이 경우 소수점 2자리로 고정된 std::chars_format::fixed)을 사용합니다. 장소).
  • 변환이 성공하면 결과 문자열이 버퍼에서 생성됩니다.

이러한 기술을 사용하면 C에서 부동 소수점을 문자열로 변환할 수 있습니다. 십진수 자릿수를 사용하여 데이터가 요구 사항에 따라 정확하게 표시되도록 합니다.

릴리스 선언문 이 글은 1729721222에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3