我有表示測量單位用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