13

これは非常に単純な問題だと確信していますが、私はVB.NETを初めて使用するため、問題が発生しています。

変数がDecimalあり、それを2つの別々の変数に分割する必要があります。1つは整数部分を含み、もう1つは小数部分を含みます。

たとえば、x = 12.34の場合、最終的にay=12およびaz=0.34になります。

これを行うための優れた組み込み関数はありますか、それとも手動で試してみる必要がありますか?

4

4 に答える 4

21

Math.Truncate(decimal)を使用して、元の値から減算することができます。入力が10進数の場合、両方の部分で負の値になることに注意してください(たとえば、-1.5 => -1、-。5)

編集:これは、全体で10進数を使用するEduardoのコードのバージョンです。

Sub SplitDecimal(ByVal number As Decimal, ByRef wholePart As Decimal, _
                 ByRef fractionalPart As Decimal)
    wholePart = Math.Truncate(number)
    fractionalPart = number - wholePart
End Sub
于 2008-12-12T10:46:03.173 に答える
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

大きな数字を使用している場合は、Jonバージョンを使用してください。

于 2008-12-12T10:47:04.047 に答える