Heim > Backend-Entwicklung > C++ > Hauptteil

Wie steuere ich die Genauigkeit der Float-zu-String-Konvertierung und die Dezimalstellen in C?

Barbara Streisand
Freigeben: 2024-10-24 06:08:02
Original
209 Leute haben es durchsucht

How to Control Float-to-String Conversion Precision and Decimal Digits in C  ?

Ändern der Genauigkeit und der Dezimalstellen bei der Konvertierung von Gleitkommazahlen in Zeichenfolgen in C

Beim Konvertieren einer Gleitkommazahl in eine Zeichenfolge in C ist es häufig erforderlich, die Präzision und zu steuern Anzahl der angezeigten Dezimalstellen. So kann dies erreicht werden:

Verwenden von Stringstream

Ein gängiger Ansatz ist die Verwendung eines Stringstreams:

<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();
Nach dem Login kopieren

Das Fixed-Flag stellt sicher, dass eine Festkomma-Notation vorliegt verwendet, während setprecision(2) angibt, dass nur zwei Dezimalstellen angezeigt werden sollen.

Konvertierung für technische Zwecke

Für technische Zwecke, wie zum Beispiel das Speichern von Daten in XML oder JSON, führt C 17 das ein to_chars-Funktionsfamilie:

<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>
Nach dem Login kopieren

Hier gewährleistet std::chars_format::fixed die Festkommaschreibweise und 2 gibt die Anzahl der Dezimalstellen an.

Das obige ist der detaillierte Inhalt vonWie steuere ich die Genauigkeit der Float-zu-String-Konvertierung und die Dezimalstellen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage