ホームページ  >  記事  >  バックエンド開発  >  制御された精度と桁数で浮動小数点を文字列に正確に変換するにはどうすればよいですか?

制御された精度と桁数で浮動小数点を文字列に正確に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 03:02:29860ブラウズ

How to Precisely Convert a Float to a String with Controlled Precision and Digits?

精度と桁数制御を使用した正確な浮動小数点から文字列への変換

C では、浮動小数点から文字列への変換には精度と数を指定する必要があります。

Stringstream の使用:

一般的なアプローチは stringstream を使用することです:

<code class="cpp">#include <iomanip>
#include <sstream>

double pi = 3.14159265359;
std::stringstream stream;
stream << std::fixed << std::setprecision(2) << pi;
std::string s = stream.str();

固定フォーマットとSetprecision:

  • fixed: 浮動小数点値が特定の小数点以下の桁数で表示される固定小数点表記を保証します。
  • setprecision: 表示する小数点以下の桁数を指定します。

C 17 to_chars ファミリ:

技術的な変換のために、C 17 は to_chars ファミリを導入します:

<code class="cpp">#include <array>
#include <charconv>

double pi = 3.14159265359;
std::array<char, 128> 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
}</code>

これによりメソッドを使用すると、変換により指定された精度と桁数の文字列が返されるため、一般アプリケーションと技術アプリケーションの両方で正確な表現が可能になります。

以上が制御された精度と桁数で浮動小数点を文字列に正確に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。