Zitat von
Matze:
Zitat von
Christian S.:
Generell finde ich es meist undurchsichtiger, was eine Convert-Funktion macht als was ein Cast macht. Dein Cast würde btw immer abrunden, oder?
Hehe, du bist dir also auch nicht sicher, oder?. Und genau darum mag ich Typecasts nicht.
Doch, ich bin mir sicher, aber wenn ein erfahrener Programmierer es anders benutzt, frage ich lieber nochmal nach. Ich kenne keine Sprache, in der ein Cast von Double nach Int runden würde.
Zitat von
Matze:
Ich habe es lieber, wenn man exakt sehen kann, was mit den Werten passiert. Und das ist bei den Convert-Methoden der Fall.
Naja, wenn ich mir die Beschreibung von Convert.Int32 durchlese ...
Zitat:
Return Value
value rounded to the nearest 32-bit signed integer. If value is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6.
Als wirklich durchsichtig würde ich das nicht bezeichnen.
Lösung für Dein Problem:
Code:
int d = 5;
int intVal = Convert.ToInt32(Math.Round(d / 2.0));
Also einfach "2.0" statt "2" schreiben.
Christian S.
Admin in der Entwickler-Ecke