2016-04-26 10 views
3

Die Klasse NumberFormatInfo enthält mehrere Eigenschaften, die sich auf die Währung beziehen, z. Währungszeichen. Dies bedeutet, dass man Objekte leicht als Währung unter Verwendung von Standardformatzeichenfolgen formatieren und anzeigen kann. Das Parsen wird ebenfalls unterstützt.Warum ist die Währung und keine anderen Einheiten in NumberFormatInfo enthalten?

Meine Frage ist, warum wird Währung aus der Box und nicht andere Maßeinheiten unterstützt? Ich möchte das gleiche mit Länge, Masse, Zeit usw. machen.

Wäre es einfach, diese Funktionalität selbst hinzuzufügen? Einige Strukturen/Klassen wären natürlich erforderlich, da man wissen müsste, was die aktuelle Maßeinheit für dieses Objekt ist.

+0

https://msdn.microsoft.com/en-us/library/bb762932(v=vs.110).aspx –

+0

Danke. Ich habe einige Tests gemacht, aber ich glaube nicht, dass ich daraus eine gute Lösung machen kann. Um eine Zahl und eine Einheit in eine Zeichenkette zu konvertieren, ist ok, beide Teile der Information sind da, aber um Benutzereingaben zu parsen und die Nummer und Einheit zu bekommen, wie Microsoft es tut, denke ich wegen der fehlenden Einheitsinformation von der UI. – Henning

Antwort

0

Es ist nur meine Meinung, aber ich denke, der Grund, warum Entwickler von .NET beschlossen haben, es genau so zu tun, wie du es erwähnst, ist wegen der riesigen Variationsbreite der Währung. Was ich meine: Egal, Sie sind Entwickler in den USA oder in Russland oder in China, gibt es die internationalen Standards für Länge, Quadrat, etc. Messung (Internationales System der Einheiten). Auch ist es dasselbe über Koordinatensystem, siehe die Klasse Punkt, X.Y. (Z) ist überall. Es ist jedoch nicht wahr in Bezug auf die Währung. In den USA ist die offizielle Währung der Dollar, in meinem Land (Kasachstan) ist es "Tenge".

+0

Ich stimme zu, dass das SI-Einheitensystem der Weg ist, intern in Programme zu gehen, aber leider möchte nicht jeder, dass seine Einheiten so in der Benutzeroberfläche angezeigt werden. Eine Flasche Milch: 0,001m³ statt 1L (oder sogar 0,264 us Gallonen). Es ist die Präsentation für den Benutzer, die "Probleme" verursacht, intern würde ich SI sicher verwenden. – Henning

+0

@Henning ist es auch viel fragmentierter. I.e. Welche Längeneinheit wird in Großbritannien verwendet? Es hängt davon ab, was Sie messen. Wir werden Meter für viele Dinge verwenden, aber immer noch Meilen und Yards auf unserer Straßenbeschilderung verwenden. –

+0

Maßeinheiten sind standardisiert, unveränderlich und in der Anzahl beschränkt (im Grunde gibt es nur zwei Systeme), so dass Sie Ihre eigenen Konvertierungsfunktionen mit Zuversicht schreiben können. –