Entwickler-Ecke
C# - Die Sprache - Typecasting Frage (Color.FromArgb und Math.Round)
Jakob_Ullmann - So 20.09.09 15:28
Titel: Typecasting Frage (Color.FromArgb und Math.Round)
Hi!
Ich weiß erstmal nicht, ob die Frage hier richtig ist, da ich mich noch nicht mit anderen .NET-Sprachen beschäftigt habe (mir reicht es schon, wenn ich C# einigermaßen kann), aber ich denke schon, dass das C#-spezifisch ist.
Bei der folgenden Zeile:
C#-Quelltext
1: 2:
| myBmp.SetPixel(i, j, Color.FromArgb(255, Math.Round(i / 2), 4 * j, 255)); |
Meckert Visual C#. Stattdessen geht es nur mit
C#-Quelltext
1: 2:
| myBmp.SetPixel(i, j, Color.FromArgb(255, (int)Math.Round((double)(i / 2)), 4 * j, 255)); |
Da wollte ich mal fragen, ob es vielleicht eine schönere Möglichkeit gibt, den Code zum Laufen zu bringen, da das ja sonst die Lesbarkeit des Codes ganz schön behindert.
Kha - So 20.09.09 15:34
C#-Quelltext
1:
| Color.FromArgb(255, i / 2, ... |
:zwinker:
Rundet im Gegensatz zu Round immer ab, aber das sollte in diesem Fall ja nicht weiter stören, oder ;) ?
Wobei ich gerade sehe, dass deine Version das auch macht. Du führst erst eine int-Division durch und castest erst danach nach double. Richtig wäre
C#-Quelltext
1:
| (int)Math.Round((double)i / 2) |
oder
C#-Quelltext
1:
| (int)Math.Round(i / 2d) |
Jakob_Ullmann - Mo 21.09.09 16:13
In diesem Fall hab ich wohl angenommen, dass das genauso wie bei Delphi läuft. Vielen Dank! :wink:
An dem Punkt merke ich, dass ich die Hälfe dessen, was ich vorgestern gelesen habe, schon wieder vergessen habe. :lol:
EDIT: Ich habe noch eine Frage: Was ist der Unterschied zwischen 2f, 2F und 2d? Ich dachte, float wäre ein Oberbegriff für double und decimal?? OK, hab's begriffen, dass float = Single ist...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!