我确信这是一个非常简单的问题,但我是VB.NET的新手,所以我遇到了问题。
我有一个Decimal
变量,我需要将它分成两个独立的变量,一个包含整数部分,另一个包含小数部分。
例如,对于x = 12.34,最终会得到y = 12和z = 0.34。
是否有一个很好的内置函数来执行此操作,还是我必须尝试手动完成它?
答案 0 :(得分:20)
您可以使用Math.Truncate(decimal)然后从原始中减去该值。请注意,如果输入为十进制,则会为这两个部分提供负值(例如-1.5 => -1,-.5)
编辑:这是Eduardo代码的一个版本,它使用十进制:
Sub SplitDecimal(ByVal number As Decimal, ByRef wholePart As Decimal, _
ByRef fractionalPart As Decimal)
wholePart = Math.Truncate(number)
fractionalPart = number - wholePart
End Sub
答案 1 :(得分:4)
(正如Jon Skeet所说),请注意小数的整数部分可以大于整数,但是这个函数会让你理解。
Sub SlipDecimal(ByVal Number As Decimal, ByRef IntegerPart As Integer, _
ByRef DecimalPart As Decimal)
IntegerPart = Int(Number)
DecimalPart = Number - IntegerPart
End Sub
如果使用大数字,请使用Jon版本。
答案 2 :(得分:1)
简单地:
ListView