Announcement

Collapse
No announcement yet.

Umwandlung double nach float

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Umwandlung double nach float

    VS2005, SQLExpress
    Möchte einen Wert aus der Datenbank umwandeln in Float Wert

    Code:
    string Font1="Arial";
    float FontSize=0;
    
    double FontSize1 = Convert.ToDouble(reader17["FontSize"].ToString());
                               
    FontSize = FontSize1 as float;
    
    Font f2 = new Font(Font1, FontSize);
    Leider ist im Code ein Umwandlungserror.
    Wo ist der Fehler ?
    Vielen Dank.

  • #2
    Hallo,

    leider sagst Du nicht, welchen Typ reader17["FontSize"] liefert. Das doppelte Konvertieren über ToString und Convert ist sowieso Quatsch; das liefert wegen der lokalen Darstellung von Dezimalzahlen häufig Probleme.

    Da float (=single) ungenauer ist als double, geht das Konvertieren von float zu double direkt ohne Umwandlung. Für den Font-Konstruktor brauchst Du freilich einen float; aber das geht mit einer einfachen expliziten Konvertierung. Unter der Voraussetzung, dass der Reader wirklich einen double-Wert liefert, wird das also ganz einfach:
    Code:
    double d2 = (double)reader17["FontSize"];
    Font f2 = new Font("Arial", (float)d2);
    Übrigens solltest Du die Convert-Klasse sowieso möglichst meiden. Wenn eine explizite oder implizite Konvertierung möglich und sicher ist (wie hier), dann nimm diese; andernfalls benutze (sofern notwendig und vorhanden) vorzugsweise Parse, ParseExact, TryParse, TryParseExact.

    Jürgen

    PS. Beim nächsten Mal sagst Du bitte auch, an welcher Stelle der Umwandlungsfehler auftritt.

    Comment

    Working...
    X