Gibt es eine Möglichkeit, die Genauigkeit des Ergebnisses beim Konvertieren eines Double in String mit std :: to_string()?Die Genauigkeit von std :: to_string (double)
Antwort
No.
Returns: Jede Funktion ein String-Objekt liefert die Zeichendarstellung des Wertes der ihr Argument hält, die durch den Aufruf
sprintf(buf, fmt, val)
mit einem Format-Spezifizierer von"%d"
, erzeugt werden würde"%u"
,"%ld"
,"%lu"
,"%lld"
,"%llu"
,"%f"
,"%f"
, oder"%Lf"
, wobei buf einen internen Zeichenpuffer von ausreichender Größe bezeichnet.
http: //en.cppreference. com/w/cpp/Zeichenfolge/basic_string/to_string –
Ich glaube, dass std::stringstream
mit setprecision
Verwendung wäre die flexibelste/portable Wahl, aber wenn Sie Ihre Daten kennen, als Problem zu umgehen, könnten Sie versuchen, das to_string
Ergebnis String. Zum Beispiel:
std::string seriesSum(int n)
{
double sum = 0, div = 1;
for(int i = 0; i < n; i++) {
sum += 1.0/div;
div += 3;
}
return std::to_string(round(sum * 100)/100).substr(0,4);
}
In dem obigen Code ich mit zwei Dezimalstellen bin Druck 0.00
durch die ersten 4 Ziffern der Zeichenfolge nehmen, aber es funktioniert nur, weil ich der ganzzahlige Teil weiß nie über einer Ziffer wird. Sie könnten auch string.find()
verwenden, um nach dem Dezimaltrennzeichen zu suchen und seine Position zu verwenden, um die Größe des Teilstrings zu berechnen, wodurch es etwas dynamischer wird.
- 1. Setzen Sie die Genauigkeit von std :: to_string beim Konvertieren von Fließkommawerten
- 2. C++ 11 std :: to_string (double) - Keine abschließenden Nullen
- 3. Was ist der Unterschied zwischen std :: to_string, boost :: to_string und boost :: lexical_cast <std::string>?
- 4. Mindestanzahl von Dezimalstellen für die Genauigkeit von std :: ostream festlegen
- 5. to_string ist kein Mitglied von Std, sagt so g ++ termux
- 6. Cygwin: g ++ 5.2: 'to_string' ist kein Mitglied von 'std'
- 7. Double/Float-Typ-Genauigkeit in Python
- 8. Ist die Spezialisierung von std :: to_string für benutzerdefinierte Typen nach dem C++ - Standard zulässig?
- 9. returns long double statt double
- 10. lexical_cast strtof strtold Genauigkeit verlieren?
- 11. eine Datei von Float und Double lesen?
- 12. Wie wird die Funktion verwendet, die RDD [(Double, Double)] als Eingabe für einen Fall von Seq [Seq [(Double, Double)]] erwartet?
- 13. Was ist die Genauigkeit von scheduleAtFixedRate?
- 14. Größe von float und double
- 15. Was ist eine einzelne Genauigkeit/doppelte Genauigkeit in Java?
- 16. Unklare Verwendung von Operator double()
- 17. Gleitkomma-Genauigkeit wieder
- 18. Eigenschaften von 80-Bit-Berechnungen mit erweiterter Genauigkeit beginnend mit Argumenten mit doppelter Genauigkeit
- 19. Genauigkeit von Task.Delay
- 20. Genauigkeit von myLocationOverlay abrufen
- 21. Machen std :: to_string Arbeit mit Void-Zeiger likes Operator <<?
- 22. Single vs Double-Datentypen
- 23. Vergleichsfunktion für std :: vector von std :: arrays
- 24. Umwandlung von String (Strtold) zu Long Double und Subtrahieren von Long Double gibt> Epsilon
- 25. double.Epsilon gegen std :: numeric_limits <double> :: min()
- 26. Was bedeutet numeric_limits <double> :: digits10
- 27. Messung der VAR-Genauigkeit mit Genauigkeit() von der Prognose
- 28. Erhalte die Genauigkeit einer Zeichenkettennummer
- 29. Konnte 'Double (*) [5]' nicht in 'Double' konvertieren
- 30. std :: vector <double> Zerstörung führt SIGABRT
Siehe auch http://stackoverflow.com/a/16606128/2436175 – Antonio
Dies ist die Antwort, die Sie gesucht haben: https://stackoverflow.com/a/16606128/512225 – jimifiki