Entwickler-Ecke
C# - Die Sprache - float... Warum runde Zahlen?
vit30 - Do 07.01.10 11:48
Titel: float... Warum runde Zahlen?
Hallo!
Datentyp "float" gibt es doch für die Zahlen mit Komma.
Warum wenn ich z.B. schreibe:
bekomme ich 2 als Ergebnis ?
Was soll ich verwenden, um richtige Antwort zu bekommen?
Moderiert von
Christian S.: C#-Tags hinzugefügt
JüTho - Do 07.01.10 11:58
Hallo,
8 und 3 sind Integers; deshalb wird zunächst eine Integer-Division durchgeführt und erst das Ergebnis als float registriert. Wenn du eine float-Division haben willst, musst du (mindestens) eine der Zahlen als float angeben:
Gruß Jürgen
PS. Daniels Lösung ist genauso korrekt.
Bei diesem Einzeiler habe ich mir den Verweis auf die Code-Markierung verkniffen; aber korrekt ist es natürlich, wie Christians Änderung zeigt.
danielf - Do 07.01.10 11:59
Hallo,
das liegt daran, dass du zwei int-Typen dividierst und das Ergebnis dann wieder vom Typ int ist (Wunder mich, dass du keinen compiler-Hinweis bekommst). Wenn du die int typen in float umwandelst sollte es gehen
Gruß Daniel
PS: Code-Snipples bitte mit entsprechendem Tag verstehen (Bereiche)
vit30 - Do 07.01.10 12:12
Danke!
Alles klar!
Kha - Sa 09.01.10 18:57
...die dummerweise nicht nur unnötig kompliziert, sondern schlichtweg falsch ist. Lässt mich gerade etwas an der Qualität des restlichen OpenBook zweifeln :gruebel: .
Zitat: |
Die Laufzeitumgebung erkennt, dass es sich um ganze Zahlen handelt, und interpretiert den Typ der beiden Literale jeweils als Integer. |
Quatsch, das macht alles der Compiler. Es gibt hier keinen Grund, das Wort "Speicher" überhaupt zu erwähnen.
Zitat: |
Dazu wird Speicher reserviert, der dem Typ des größten der beiden beteiligten Operanden entspricht |
3.0 / 2 ist also ein
double,
3 / 2.0 ein
int :mrgreen: ?
In C# ergibt die Divison zweier
ints wieder einen, damit ist doch alles gesagt :nixweiss: .
Delete - So 10.01.10 12:33
Kha hat folgendes geschrieben : |
...die dummerweise nicht nur unnötig kompliziert, sondern schlichtweg falsch ist. Lässt mich gerade etwas an der Qualität des restlichen OpenBook zweifeln :gruebel: . |
Immerhin wird das Thema dort erwähnt. Ich lerne C# noch und habe mehrere "Einsteiger"-Bücher und nur in diesem Buch wurde dieses Problem erwähnt.
Die Erklärung mag evtl. falsch sein, jedoch hat das Ergebnis dann wohl gestimmt.
Immerhin besser, als totschweigen. ;)
Grüße
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!