在VB.NET中拆分'Decimal'

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)


Edu*_*eni 5

(正如 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 版本。