Wie kann man in C++ und C# die gleichen Rundungsergebnisse bei der Doppel-zu-String-Konvertierung erzielen?
Posted: 03 Jan 2025, 10:34
Ich möchte sowohl in C++ als auch in C# ein Double in einen String mit einer bestimmten Anzahl von Dezimalstellen konvertieren und möchte, dass die Ergebnisse dieser Konvertierungen in beiden Sprachen gleich sind. Insbesondere die C++-Konvertierung sollte der Konvertierung in C# entsprechen.
Als Beispiel möchte ich einen Double-Wert von 3,15 in einen String mit einer Nachkommastelle konvertieren.
In C# kann ich Folgendes tun:
Dann enthält die resultierende Variable str0 „3.2“. Dies ist das erwartete Rundungsergebnis.
In C++ gibt es mehrere Möglichkeiten für eine solche Konvertierung:
Als Beispiel möchte ich einen Double-Wert von 3,15 in einen String mit einer Nachkommastelle konvertieren.
In C# kann ich Folgendes tun:
Code: Select all
// C#
double d = 3.15;
string str0 = d.ToString("0.0");
In C++ gibt es mehrere Möglichkeiten für eine solche Konvertierung:
Code: Select all
// C++
double d = 3.15;
char str1[256];
sprintf(str1, "%.1f", d);
std::stringstream stream;
stream