Warum sollte ich verwenden Ganzzahlen als ich konnte einfach floats oder doubles in C#?
Nur zu lernen, C# im moment.
Verstehe ich nicht, warum würde jemand verwenden Ganzzahlen als Sie verwenden konnte, Schwimmern oder Doppelzimmer..
Schwimmt hinzufügen/subtrahieren ganze zahlen UND Dezimalzahlen, also warum sollte jemand überhaupt die Mühe mit einem plain old integer?
Scheint, wie floats oder double-kümmern sich um alles, was ein Integer kann mit dem bonus des seins in der Lage zu handhaben . zahlen auch..
Dank!
- Sie haben eine Menge zu lernen über die Nachteile von floating-point! Beginnen Sie mit dem klassischen Was Jeder Computer Scientist should Know About Floating-Point-Arithmetict.
- Berechnungen mit Integer schneller sind als mit Fließkommazahlen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der wichtigste Grund ist der gleiche Grund, warum wir oft vorziehen, zu verwenden ganzzahlige Brüche anstelle von fester Genauigkeit Dezimalstellen. Mit rationalen Brüche (1/3) mal 3 ist immer 1. (1/3) plus (2/3) ist immer 1. (1/3) mal 2 (2/3).
Warum? Da ganzzahligen Brüche sind genau, genau wie ganze zahlen sind exakt.
Aber mit fester Genauigkeit reelle zahlen-es ist nicht so schön. Wenn (1/3) ist
.33333
, dann 3 mal (1/3) wird nicht 1. Und wenn (2/3) ist.66666
ist, dann (1/3)+(2/3) nicht ein. Aber wenn (2/3) ist.66667
ist, dann (1/3) mal 2 (2/3) und 1 minus (1/3) wird nicht von (2/3).Und, natürlich, Sie können nicht dieses Problem beheben, indem man mehrere Orte. Keine Anzahl der Nachkommastellen wird Ihnen erlauben, zu repräsentieren (1/3) genau.
Floating point ist ein fester Genauigkeit real-format, viel wie mein fester Genauigkeit Dezimalstellen oben. Es muss nicht immer Folgen die naive Regeln, die Sie vielleicht erwarten. Siehe die klassische Papier Was Jeder Computer Scientist Should Know About Floating-Point Arithmetic.
Ihre Frage zu beantworten, in einer ersten Annäherung, die Sie verwenden sollten, Ganzzahlen, die Sie möglicherweise können, und verwenden Sie Gleitkommazahlen nur, wenn Sie müssen. Und Sie sollten immer daran denken, dass floating-point-zahlen haben nur begrenzte Genauigkeit und Vergleich zweier Gleitkomma-zahlen, um zu sehen, wenn Sie gleich sind kann geben kann Ergebnisse Sie erwarten.
Wie Sie sehen können, in hier die verschiedenen Typen haben jeweils Ihre eigene Größe.
Z.B. bei der Arbeit mit großen Datenbanken, eine
int
oderfloat
zu verdoppeln bis die gewünschte Größe.Gibt es mehrere Gründe. Leistung, Speicher, auch der Wunsch, nicht sehen Dezimalstellen (ohne zu spielen mit format-strings).
Haben Sie verschiedene Datentypen, weil Sie verwenden eine unterschiedliche Anzahl von bits zum speichern von Daten.
In der Regel ein integer wird weniger Speicher verwenden, als eine doppelte, das ist der Grund, warum man nicht nur den größten möglichen Datentyp.
http://en.wikipedia.org/wiki/Data_type
Floating point:
Integer:
So, Genauigkeit ist ein argument.
Gibt es mehrere Gründe. First off, wie die Leute schon gesagt haben -, Doppel-speichert 64-bit-numerische Werte, während int nur eine 32-bit -.
Float ist ein anderer Fall. Beide int-und float-store 32-bit-zahlen, aber schwimmen ist weniger präzise. Ein float-Wert ist präzise bis zu 7 Ziffern, aber darüber hinaus ist nur eine Annäherung. Wenn Sie größere Stückzahlen, oder wenn es irgendeinen Fall, wo Sie gezielt zwingen wollen, die nur ganzzahlige Werte ohne Bruchzahlen, int ist der Weg zu gehen. Wenn Sie nicht Sorge über den Verlust von Präzision und ermöglichen möchten, eine breitere Palette von Werten, die Sie verwenden können, float statt.
Der Hauptgrund für die Verwendung der ganzen zahlen ist der Speicherverbrauch und Leistung.
Auch wenn Sie tun müssen, würde dieser Typen für die Darstellung von real-zahlen würde der code sein mehr mehr fehleranfällig.
Meiste Antwort die hier gegeben werden, sich direkt mit mathematischen Konzepte. Es sind rein rechnerische Gründe für die Verwendung von Integer-zahlen. einige springen in den Sinn: