我有表示测量单位用Decimal
作为数字类。为了简化这个例子,假设我代表厘米。我想为这个类实现一个ToString()方法。问题是,如果数值是一个整数,我想只显示整数的小数。否则,我想保留它作为小数。因此,例如,10.5D厘米显示为“10.5cm”,但7.0D厘米显示为“7cm”。我希望这是快速和简单的阅读。我有一个工作解决方案,但似乎应该有更好的方法。如何检查.NET十进制值是否为整数?
这里是显示我的第一次尝试一个人为的例子吧:
Public Property Units As String = "cm"
Public Property NumericValue As Decimal = 10.5D
Public Overrides Function ToString()
Dim num As String = If(Me.NumericValue = Decimal.Ceiling(Me.NumericValue), _
Decimal.ToInt32(Me.NumericValue).ToString(), _
Me.NumericValue.ToString())
Return num + Me.Units
End Function
我与Me.NumericValue = Decimal.Ceiling(Me.NumericValue)
有点不舒服。有关如何做得更好的想法?有什么我可以用String.Format或Decimal类中的其他方法来做什么,这将使这个更清晰,并保持它的性能?
这是一个人为的例子。实际上,我从XHTML文档解析CSS和写作,表示与单位像PX的数值类,EM厘米,在,%等。所以,是的,我想7厘米,不7.0厘米。 – mattmc3 2010-08-20 02:49:19