Heim >Backend-Entwicklung >C++ >Wie konvertiert man in C eine Gleitkommazahl mit Genauigkeit und Anzahl der Dezimalstellen in eine Zeichenfolge?

Wie konvertiert man in C eine Gleitkommazahl mit Genauigkeit und Anzahl der Dezimalstellen in eine Zeichenfolge?

DDD
DDDOriginal
2024-10-24 06:47:02217Durchsuche

How Do You Convert a Float to a String with Precision and Number of Decimal Digits in C  ?

So konvertieren Sie eine Gleitkommazahl in eine Zeichenfolge mit Genauigkeit und Anzahl der Dezimalstellen in C

In C können Sie eine Gleitkommazahl in umwandeln eine Zeichenfolge, während die Genauigkeit und die Anzahl der Dezimalstellen mit verschiedenen Methoden angegeben werden, darunter:

Verwendung von 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();

Bei diesem Ansatz stellt std::fixed sicher, dass es behoben ist -Punkt-Notation und std::setprecision legt die Anzahl der Dezimalstellen fest.

Verwendung von std::to_chars (C 17)

Für spezifische technische Konvertierungen, C 17 führte die Funktion std::to_chars ein:

<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>

Hier gibt std::chars_format::fixed die Festkommaschreibweise an und der dritte Parameter steuert die Anzahl der Dezimalstellen.

Das obige ist der detaillierte Inhalt vonWie konvertiert man in C eine Gleitkommazahl mit Genauigkeit und Anzahl der Dezimalstellen in eine Zeichenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn