將浮點數精確轉換為具有指定十進制精度的字串
在C 中,將浮點數轉換為具有特定精度的字串,並且小數位需要仔細考慮。本指南探討了兩種常見的解:stringstream 和 C 17 中的 to_chars 函數。
使用 Stringstream
Stringstream 是 C 中操作字串的多功能工具。要將浮點轉換為具有指定精度的字串,可以套用流操縱器:
#include
#include
double pi = 3.14159265359;
std::stringstream stream;
stream - std::fixed 確保數字以定點表示法表示,帶有小數點和指定的位數。
- std::set precision(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 形式)、一個數字和一個格式規格(在本例中,std::chars_format::fixed 為2 位十進制) place)。
- 如果轉換成功,則從緩衝區建構結果字串。
透過採用這些技術,您可以在 C 中將浮點數轉換為字串,並精確控制小數位數,確保您的資料準確表示並符合您的要求。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3