2008-12-12 11 views
11

में 'दशमलव' विभाजित करें मुझे यकीन है कि यह एक बहुत ही साधारण समस्या है, लेकिन मैं वीबी.नेट के लिए नया हूं, इसलिए मुझे इसके साथ कोई समस्या है।वीबीएनईटी

मेरे पास Decimal वैरिएबल है, और मुझे इसे दो अलग-अलग चरों में विभाजित करने की आवश्यकता है, जिसमें एक पूर्णांक भाग होता है, और एक अंश भाग होता है।

उदाहरण के लिए, x = 12.34 के लिए आप y = 12 और z = 0.34 के साथ समाप्त हो जाएंगे।

क्या ऐसा करने के लिए कोई अच्छा अंतर्निहित कार्य है या क्या मुझे इसे मैन्युअल रूप से करने और इसे करने की ज़रूरत है?

उत्तर

19

आप Math.Truncate(decimal) का उपयोग कर सकते हैं और फिर मूल से घटा सकते हैं। यहाँ जो भर दशमलव का उपयोग करता एडुआर्डो के कोड का एक संस्करण है::

कि कि आप दोनों भागों के लिए एक नकारात्मक मूल्य दे देंगे अगर इनपुट दशमलव (जैसे -1.5 => -1, -.5)

संपादित है ध्यान रखें

Sub SplitDecimal(ByVal number As Decimal, ByRef wholePart As Decimal, _ 
       ByRef fractionalPart As Decimal) 
    wholePart = Math.Truncate(number) 
    fractionalPart = number - wholePart 
End Sub 
4

(जैसा कि जॉन स्कीट कहते हैं), सावधान रहें कि दशमलव का पूर्णांक भाग पूर्णांक से अधिक हो सकता है, लेकिन यह फ़ंक्शन आपको विचार प्राप्त करेगा।

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

यदि आप बड़ी संख्या का उपयोग कर रहे हैं तो जॉन संस्करण का उपयोग करें।

+0

दशमलव पूर्णांकों (और चाहता है) की श्रेणी से बाहर रास्ता तय कर सकते हैं –

+0

हाँ, लेकिन यह सिर्फ विचार –

0

सीधे शब्दों में:

DecimalNumber - Int(DecimalNumber) 
+0

मैं तुम्हें अपने जवाब के आसपास कुछ अधिक संदर्भ जोड़ करने का अनुरोध करते। कोड-केवल या लिंक-केवल उत्तरों को समझना मुश्किल होता है। यदि आप अपनी पोस्ट में अधिक जानकारी जोड़ सकते हैं तो यह पूछने वाले और भावी पाठकों दोनों की मदद करेगा। – RBT