Konvertieren von float zu double

Ich versuche zu konvertieren Single zu Double unter Beibehaltung des ursprünglichen Wertes. Ich habe festgestellt, das folgende Methode:

Single f = 5.2F;
Double d1 = f; //5.19999980926514
Double d2 = Double.Parse(f.ToString()); //5.2 (correct)

Ist diese Praxis zu empfehlen? Ich brauche nicht eine optimale Methode, aber der soll-Wert muss übergeben werden auf zu das doppelte. Gibt es auch Konsequenzen für die Speicherung eines gerundeten Wert in ein double?

Nicht alle floating-point-zahlen repräsentieren genau, weshalb 5.2 wird 5.19999980926514.
Von einer binären Sicht ist. 5.2 nicht dargestellt werden kann genau als binary floating-point-Zahl, so gibt es Ihnen der nächste Wert, den es zu können.
Ich verstehe, aber ist das nicht eine string-Konvertierung ein mutiger Schritt? Ist es vermeidbar?
Was sind Sie tun mit diesen zahlen? Ja, die Konvertierung einer single-in eine Zeichenfolge und analysieren, um eine doppelte ist wahrscheinlich nicht der beste Ansatz.
Vorzugsweise hard-coded, aber ich kann nicht davon ausgehen entweder. Floating-point-Logik ist mein absolutes Laster; was ich wirklich wissen müssen ist, wie zu konvertieren Single zu Double unter Beibehaltung des darstellungsprinzips im Fall der Wert war zwar hart-codiert, da die Werte serialisiert werden irgendwann. Ich glaube, ich verstehe, dass die direkte Single zu Double Konvertierung ist nicht schädlich, aber das ist eine Frage der Präsentation.

InformationsquelleAutor toplel32 | 2015-04-07

Schreibe einen Kommentar