首頁  >  文章  >  後端開發  >  如何將浮點數轉換為具有 C 中指定的精確度和小數位數的字串?

如何將浮點數轉換為具有 C 中指定的精確度和小數位數的字串?

DDD
DDD原創
2024-10-24 06:37:30408瀏覽

How to Convert Float to String with Precision and Decimal Digits Specified in C  ?

將浮點數轉換為指定精確度和小數位的字串

在指定精確度和小數位的情況下將浮點數轉換為C 中的字串格式化數字資料通常需要數字。

一個常見的方法是利用stringstream:

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

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

fixed 操縱器確保定點表示法,而set precision( 2) 將小數部分限制為兩位數。

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);
}</code>

使用 to_chars 時請記住確保編譯器合規性。

以上是如何將浮點數轉換為具有 C 中指定的精確度和小數位數的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn