Einzelnen Beitrag anzeigen

Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#4

Re: [.NET] Math.Round() macht mich verrückt

  Alt 12. Dez 2009, 14:16
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
  Mit Zitat antworten Zitat