chi*_*ien 12 vb.net split decimal
我确信这是一个非常简单的问题,但我是VB.NET的新手,所以我遇到了问题.
我有一个Decimal
变量,我需要将它分成两个独立的变量,一个包含整数部分,另一个包含小数部分.
例如,对于x = 12.34,最终得到ay = 12和az = 0.34.
有没有一个很好的内置函数来做到这一点,还是我必须尝试手动解决?
Jon*_*eet 20
您可以使用Math.Truncate(十进制),然后从原始中减去它.请注意,如果输入为十进制,则会为两个部分提供负值(例如-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
Run Code Online (Sandbox Code Playgroud)
(正如 Jon Skeet 所说),请注意小数的整数部分可能大于整数,但是这个函数会让你明白。
Sub SlipDecimal(ByVal Number As Decimal, ByRef IntegerPart As Integer, _
ByRef DecimalPart As Decimal)
IntegerPart = Int(Number)
DecimalPart = Number - IntegerPart
End Sub
Run Code Online (Sandbox Code Playgroud)
如果您使用大数字,请使用 Jon 版本。