以指定十進位精確度將浮點數精確轉換為字串
在C 中,將浮點數轉換為具有特定精確度的字元串,並小數位需要仔細考慮。本指南探討了兩種常見的解:stringstream 和 C 17 中的 to_chars 函數。
使用 Stringstream
Stringstream 是用於在 C 中操作字串的多功能工具。要將浮點轉換為具有指定精確度的字串,可以應用流操縱器:
<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();
使用to_chars 函數(C 17 以上)
出於更多技術目的,例如將資料寫入XML 或JSON,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>
透過使用這些技術,您可以將浮點數轉換為 C 中的字串,並精確控制小數位數,確保您的資料準確且以符合您的要求。
以上是在 C 中如何將浮點數精確轉換為具有指定十進位精確度的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!