Welche Typen sollte ich verwenden zum darstellen von Prozentsätzen in C# und SQL-Server?
Ich denke schwimmt. Für das Protokoll ich bin auch mit NHibernate.
InformationsquelleAutor der Frage Iain Holder | 2008-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
decimal
Werden Sie nicht verlieren Präzision durch Rundung.
InformationsquelleAutor der Antwort Bob King
Die Antwort ist anwendungsabhängig.
Andere haben darauf hingewiesen, dass dezimal ist besser als schwimmen für die Darstellung eines exakten Wert. Aber manchmal ist es besser, auf ein float für die Erhöhung der Präzision (z.B. eine Reihe von berechneten GEWICHTE summieren sich zu 100% wohl besser vertreten als float)
InformationsquelleAutor der Antwort Joe
Es hängt davon ab, wie viel Präzision, die Sie brauchen; Das wichtigste ist, konsequent zu sein und klar. Vorkehrungen treffen, um sicherzustellen, dass Sie konsistent in das Feld verwenden.. d.h. nicht speichern Sie es als float (n = .5) und dann versuchen zu rekonstruieren, als wäre es ein integer in einem anderen Teil des Codes (mypercentage = n/100). So lange, wie Sie sicher nicht tun, und Sie bauen keine laser, die erfordert, dass 30 signifikanten Ziffern für die Genauigkeit, wählen Sie einfach Ihre Lieblings-Geschmack, die zwischen int, double, oder was auch immer floats Ihr Boot. waka-waka.
InformationsquelleAutor der Antwort BKimmel
Hinsichtlich SQL-Server, es ist selten, dass ich mal speichern Prozentsatz. 9 mal out of 10 Sie die Daten speichern möchten, wird verwendet, um daraus den Prozentsatz und berechnen, wie gebraucht.
Wenn und nur wenn Sie die empirischen Daten, die zeigen, die Berechnung zu langsam ist, dann gehen Sie vor, zu speichern. Verwenden Sie eine Dezimalzahl, wie zuvor vorgeschlagen, um zu vermeiden Rundung Probleme.
InformationsquelleAutor der Antwort Joel Coehoorn
Es hängt davon ab, wie genau Sie benötigen. Wenn Sie brauchen keine Dezimalstellen man kann sogar mit winzigen int. Aber in der Regel Schwimmer sind gut, wenn Sie benötigen einige Dezimalstellen. Ich benutze LLBLGen und Schwimmer für %s'
InformationsquelleAutor der Antwort mattlant
Es hängt davon ab, was Sie verwenden, Sie für.
wenn es für eine Anzeige, die ein int wäre genau richtig, und ist schneller als ein Schwimmer. Wenn es für seltene Mathematik-ein int wäre noch in Ordnung (oder sogar einen kurzen, in jedem Fall).
Wenn du tust, viel Mathe, dann eine float wäre wahrscheinlich das beste, performance-wise.
Natürlich, es sei denn Sie tun eine MENGE manipulation der Prozentsätze, es wird nicht wirklich eine Rolle in der end -, performance-Weise, ist angesichts der modernen Prozessor-Geschwindigkeit.
EDIT: natürlich, 'int', vorausgesetzt, Sie sind nur unter den strengen, ganz-Anzahl Proz. Wenn Sie nicht sind, Sie würde IMMER besser mit float-oder dec.
InformationsquelleAutor der Antwort Jeff