2008-12-12 16 views
11

Ich bin sicher, das ist ein sehr einfaches Problem, aber ich bin neu in VB.NET, so habe ich ein Problem damit.Split 'Dezimal' in VB.NET

Ich habe eine Decimal Variable, und ich muss es in zwei separate Variablen aufteilen, eine mit dem ganzzahligen Teil und eine mit dem Bruchteil.

Zum Beispiel für x = 12.34 würden Sie mit einem y = 12 und einem z = 0.34 enden.

Gibt es eine nette integrierte Funktionen, um dies zu tun oder muss ich versuchen, es manuell ausarbeiten?

Antwort

19

Sie können Math.Truncate(decimal) verwenden und dann vom Original subtrahieren. Beachten Sie, dass das wird Ihnen einen negativen Wert für beide Teile, wenn der Eingang dezimal (zB -1,5 => -1, ± 5)

EDIT: Hier ist eine Version von Eduardo Code, der dezimal im gesamten verwendet:

4

(Wie Jon Skeet sagt), Vorsicht, dass der ganzzahlige Teil einer Dezimalzahl größer als eine ganze Zahl sein kann, aber diese Funktion wird Ihnen die Idee bringen.

Sub SlipDecimal(ByVal Number As Decimal, ByRef IntegerPart As Integer, _ 
        ByRef DecimalPart As Decimal) 
     IntegerPart = Int(Number) 
     DecimalPart = Number - IntegerPart 
    End Sub 

Verwenden Sie die Jon-Version, wenn Sie große Zahlen verwenden.

+0

Decimals kann Art und Weise außerhalb des Bereichs von ganzen Zahlen gehen (und Longs) –

+0

Ja, aber es nur die Idee –

0

einfach:

DecimalNumber - Int(DecimalNumber) 
+0

ich Sie ersuchen, bitte etwas mehr Kontext um Ihre Antwort hinzuzufügen. Code-Only- oder Link-Only-Antworten sind schwer zu verstehen. Es wird sowohl dem Fragesteller als auch zukünftigen Lesern helfen, wenn Sie in Ihrem Beitrag weitere Informationen hinzufügen können. – RBT