Ich konvertiere eine Zeichenfolge wie "41.00027357629127" und verwende;
Convert.ToSingle("41.00027357629127");
oder
float.Parse("41.00027357629127");
Diese Methoden geben 4.10002732E + 15 zurück .
Wenn ich in float konvertiere, möchte ich "41.00027357629127". Diese Zeichenfolge sollte dieselbe sein ...
c#
.net
string
floating-point
type-conversion
Mehmet
quelle
quelle
Antworten:
Das Gebietsschema Ihres Threads ist auf eins festgelegt, bei dem die Dezimalstelle "," anstelle von "." Ist.
Versuchen Sie Folgendes:
Beachten Sie jedoch, dass ein Float nicht so viele Stellen Genauigkeit enthalten kann. Sie müssten dazu double oder Decimal verwenden.
quelle
using System.Globalization;
für den Zugriff hinzuzufügenCultureInfo
Erstens ist es nur eine Darstellung der
float
Nummer, die Sie im Debugger sehen. Der tatsächliche Wert ist ungefähr genau (so viel wie möglich).Hinweis: Verwenden Sie immer CultureInfo- Informationen, wenn Sie mit Gleitkommazahlen oder Zeichenfolgen arbeiten.
Dies ist nur ein Beispiel; Wählen Sie eine geeignete Kultur für Ihren Fall.
quelle
new System.Globalization.CultureInfo("tr-TR")
Sie können Folgendes verwenden:
quelle
Verwenden
Convert.ToDouble("41.00027357629127");
Convert.ToDouble
Dokumentationquelle
Die Genauigkeit von float beträgt 7 Stellen. Wenn Sie das gesamte Los behalten möchten, müssen Sie den Doppeltyp verwenden, der 15-16 Ziffern enthält. Informationen zur Formatierung finden Sie in einem Beitrag zum Formatieren von Doppeln . Und Sie müssen sich um Dezimaltrennzeichen in C # kümmern .
quelle
Sie können
double.Parse("41.00027357629127");
quelle
Sie können das Parsen mit double anstelle von float verwenden, um einen genaueren Wert zu erhalten.
quelle