mat*_*mc3 5 .net vb.net decimal
我有一个用 aDecimal作为数字表示度量单位的类。只是为了简化这个例子,假设我代表厘米。我想为这个类实现一个 ToString() 方法。问题是,如果数值是整数,我只想将小数显示为整数。否则,我想将其保留为小数。因此,例如,10.5D 厘米将显示为“10.5cm”,但 7.0D 厘米应显示为“7cm”。我希望阅读起来既快速又简单。我有一个可行的解决方案,但似乎应该有更好的方法。
这是一个人为的例子,展示了我对它的第一次破解:
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
Run Code Online (Sandbox Code Playgroud)
我有点不舒服Me.NumericValue = Decimal.Ceiling(Me.NumericValue)。关于如何更好地做到这一点的任何想法?有什么我可以用 String.Format 或 Decimal 类上的其他一些方法做的事情,可以使这更清晰并保持其性能?
你可以试试:
decimal.Truncate(myDecimal) == myDecimal
Run Code Online (Sandbox Code Playgroud)
这可能足以满足您的目的。然而,这是一个复杂的问题;简单地使用System.Decimal并不能消除与浮点表示相关的所有问题。这里的代码示例就是一个很好的例子。
| 归档时间: |
|
| 查看次数: |
7434 次 |
| 最近记录: |