2016-04-26 53 views
3

NumberFormatInfo类包括多个与货币相关的属性,例如, CURRENCYSYMBOL。这意味着可以使用标准格式字符串轻松地将对象格式化并显示为货币。解析也支持。为什么货币并非包含在NumberFormatInfo中的其他单位

我的问题是,为什么货币支持开箱即用,而不是其他计量单位?我想做长度,质量,时间等相同的东西。

自己添加此功能会很容易吗?当然需要一些结构/类,因为人们需要知道该对象的当前度量单位是什么。

+0

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

+0

谢谢。我用这个做了一些测试,但我不认为我可以根据这个做出一个很好的解决方案。要将一个数字和一个单位转换为一个字符串是可以的,那么这两个信息都在那里,但是解析用户输入并获得数字和单位是微不足道的,因为缺乏来自UI的单元信息。 – Henning

回答

0

这只是我的看法,但我认为.NET开发人员决定按照您提及的方式完成这一任务的原因是因为货币的变化范围很大。我的意思是:无论您是美国,俄罗斯还是中国的开发商,都有长度,平方等测量的国际标准(国际单位制)。关于坐标系也是一样的,看到类Point,X.Y.(Z)无处不在。然而,货币并非如此。在美国的官方货币是美元,在我国(哈萨克斯坦)是“坚戈”。

+0

我同意SI单元系统是在程序中内部使用的方式,但不幸的是,并不是每个人都希望在UI中显示其单元。一瓶牛奶:0.001立方米而不是1升(甚至0.264美加仑)。这是向用户呈现“问题”的表示,在内部我肯定会使用SI。 – Henning

+0

@亨宁它也更加分散。即英国使用的单位长度是多少?这取决于你测量的是什么。我们会使用米来做很多事情,但我们的路标仍然使用英里和码。 –

+0

度量单位是标准化的,不可变的,且数量有限(基本上只有两个系统),因此您可以自信地编写自己的转换函数。 –

相关问题