2016-04-26 1 views
3

La classe NumberFormatInfo inclut plusieurs propriétés liées à la devise, par ex. Symbole de la monnaie. Cela signifie que l'on peut facilement formater et afficher des objets en tant que monnaie en utilisant des chaînes de format standard. L'analyse est également prise en charge.Pourquoi la devise et les autres unités sont-elles incluses dans NumberFormatInfo?

Ma question est la suivante: pourquoi la monnaie est-elle prise en charge immédiatement et non pas d'autres unités de mesure? Je voudrais faire la même chose avec la longueur, la masse, le temps etc.

Serait-il facile d'ajouter cette fonctionnalité moi-même? Certaines structures/classes seraient bien sûr nécessaires, car il faudrait savoir quelle est l'unité de mesure actuelle pour cet objet.

+0

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

+0

Merci. J'ai fait quelques tests en utilisant ceci, mais je ne pense pas que je puisse faire une bonne solution sur cette base. Convertir un nombre et une unité en une chaîne est correct, les deux informations sont là, mais analyser l'entrée de l'utilisateur et obtenir le nombre et l'unité comme le fait Microsoft est difficile à cause du manque d'informations unitaires de l'interface utilisateur. – Henning

Répondre

0

C'est juste mon opinion, mais je pense que la raison pour laquelle les développeurs de .NET ont décidé de le faire exactement comme vous l'avez mentionné est en raison de l'énorme gamme de variations de la monnaie. Ce que je veux dire: peu importe si vous êtes développeur aux États-Unis ou en Russie ou en Chine, il existe des normes internationales pour la mesure de longueur, carré, etc. (Système international d'unités). Il en va de même pour le système de coordonnées, voir la classe Point, X.Y. (Z) est partout. Cependant, ce n'est pas vrai de la monnaie. Aux États-Unis, la monnaie officielle est le dollar, dans mon pays (le Kazakhstan), c'est le «tenge».

+0

Je suis d'accord sur le fait que le système d'unités SI est la façon de fonctionner en interne dans les programmes, mais malheureusement, tout le monde ne souhaite pas que ses unités soient affichées comme cela dans l'interface utilisateur. Une bouteille de lait: 0.001m³ au lieu de 1L (ou même 0.264 us gallons). C'est la présentation à l'utilisateur qui cause des "problèmes", en interne, j'utiliserais SI à coup sûr. – Henning

+0

@Henning c'est aussi beaucoup plus fragmenté. C'est à dire. quelle unité de longueur est utilisée au Royaume-Uni? Cela dépend de ce que vous mesurez. Nous utiliserons des compteurs pour de nombreuses choses, mais nous utiliserons encore Miles et Yards sur notre signalisation routière. –

+0

Les unités de mesure sont normalisées, immuables et limitées en nombre (essentiellement, il n'y a que deux systèmes), vous pouvez donc écrire vos propres fonctions de conversion en toute confiance. –