gpt4 book ai didi

.net - 我应该如何检查.NET十进制值是否为整数?

转载 作者:行者123 更新时间:2023-12-03 16:46:12 25 4
gpt4 key购买 nike

我有一个类,用Decimal作为数值来代表计量单位。为了简化本示例的内容,假设我表示的是厘米。我想为此类实现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

我对 Me.NumericValue = Decimal.Ceiling(Me.NumericValue)有点不舒服。关于如何做得更好的任何想法?我可以使用String.Format或Decimal类上的其他方法来做些什么,以使其更清楚并保持其性能?

最佳答案

你可以试试:

decimal.Truncate(myDecimal) == myDecimal

这可能足以满足您的目的。但是,这是一个复杂的问题;仅仅使用 System.Decimal并不能消除与浮点表示法有关的所有问题。代码样本 here就是一个很好的例子。

关于.net - 我应该如何检查.NET十进制值是否为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com