我相信这是一个非常简单的问题,但我刚接触VB.NET,所以我有些困惑。
我有一个 Decimal
变量,我需要将其拆分成两个独立的变量,一个包含整数部分,一个包含小数部分。
例如,对于 x = 12.34,您需要得到 y = 12 和 z = 0.34。
是否有一个好用的内置函数可以做到这一点,还是我必须手动计算?
编辑:这是 Eduardo 代码的另一个版本,其中始终使用 decimal:
Sub SplitDecimal(ByVal number As Decimal, ByRef wholePart As Decimal, _
ByRef fractionalPart As Decimal)
wholePart = Math.Truncate(number)
fractionalPart = number - wholePart
End Sub
(就像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版本。
简单来说:
DecimalNumber - Int(DecimalNumber)
Dim dbl as double = 13.067
Dim int1 As Integer = 0
Dim fraction As Double = 0
If dbl >= 0 Then
int1 = Math.Floor(dbl)
ElseIf dbl < 0 Then
int1 = Math.Ceiling(dbl)
End If
fraction = dbl - int1
fraction holdes 0.067,int1保持13。 Floor和Ceiling分别将任何小数四舍五入为最低和最高的连续整数。