2011-12-29 7 views
12

आप को एक दशमलव या एक पूर्णांक के लिए फ़्लोट कैसे करेंगे। उदाहरण के लिए ...दशमलव/डबल से पूर्णांक - राउंड अप (न केवल निकटतम)

0.0 => 0 
0.1 => 1 
1.1 => 2 
1.7 => 2 
2.1 => 3 

आदि

+3

नकारात्मक उदाहरणों के लिए आप क्या व्यवहार चाहते हैं? करता है -1.1 -1 (बड़े पर जाएं) या -2 (शून्य से आगे जाने के लिए) पर जाएं? –

उत्तर

40

सरल, का उपयोग Math.Ceiling:

var wholeNumber = (int)Math.Ceiling(fractionalNumber); 
+0

मुझे पता है कि यह ऑफ-विषय है, लेकिन क्या मैं आपसे पूछ सकता हूं कि आपने 'var' क्यों नहीं किया और' int 'क्यों नहीं? – ken2k

+3

शुद्ध रूप से आदत से बाहर। 'var myDictionary = new Dictionary >() 'उदाहरण के लिए, लंबे प्रकार की ऑब्जेक्ट्स घोषित करते समय' var' उपयोगी हो सकता है। –

+0

ठीक है, उत्तर के लिए धन्यवाद! – ken2k

5

कुछ इस तरह?

int myInt = (int)Math.Ceiling(myDecimal); 
+0

क्यों स्ट्रिंग को केवल पार्स करने के लिए कनवर्ट करें? बस इसे कास्ट करें। –

+0

यह निश्चित रूप से बेहतर है। अब मेरा जवाब संपादित किया। –

0

Math.Ceiling नहीं मेरे लिए काम कर, मैं इस कोड और इस काम :)

int MyRoundedNumber= (int) MyDecimalNumber; 
       if (Convert.ToInt32(MyDecimalNumber.ToString().Split('.')[1]) != 0) 
        MyRoundedNumber++; 

का उपयोग करें और आप दौर -1.1 उदाहरण के लिए नीचे करने के लिए करने के लिए -2 उपयोग नकारात्मक संख्या पूर्णांक बनाना चाहते हैं इस

int MyRoundedNumber= (int) MyDecimalNumber; 
        if (Convert.ToInt32(MyDecimalNumber.ToString().Split('.')[1]) != 0) 
         if(MyRoundedNumber>=0) 
          MyRoundedNumber++; 
         else 
          MyRoundedNumber--; 
-2
var d = 1.5m; 
var i = (int)Math.Ceiling(d); 
Console.Write(i); 
+0

यह सिर्फ * राउंड * संख्या है, यह आवश्यक नहीं है ** ऊपर **। – radoh

0

यह काम नहीं करता कह से पहले, आप जांच करने के लिए है कि आपरेशन में सभी मान डबल प्रकार हैं। यहां सी #:

int speed= Convert.ToInt32(Math.Ceiling((double)distance/ (double)time));