एक दशमलव उदाहरण x
की छत लेने के लिए सबसे सीधा तरीका x.to_integral_exact(rounding=ROUND_CEILING)
उपयोग करने के लिए है। यहां संदर्भ के साथ गड़बड़ करने की कोई आवश्यकता नहीं है। ध्यान दें कि यह Inexact
और Rounded
फ़्लैग जहां उचित है सेट करता है; यदि आप नहीं चाहते हैं कि झंडे को छुआ, तो इसके बजाय x.to_integral_value(rounding=ROUND_CEILING)
का उपयोग करें। उदाहरण:
>>> from decimal import Decimal, ROUND_CEILING
>>> x = Decimal('-123.456')
>>> x.to_integral_exact(rounding=ROUND_CEILING)
Decimal('-123')
दशमलव तरीकों का सबसे विपरीत, to_integral_exact
और to_integral_value
तरीकों वर्तमान संदर्भ की शुद्धता से प्रभावित नहीं हैं, तो आप को बदलने परिशुद्धता के बारे में चिंता करने की ज़रूरत नहीं है:
>>> from decimal import getcontext
>>> getcontext().prec = 2
>>> x.to_integral_exact(rounding=ROUND_CEILING)
Decimal('-123')
वैसे, पायथन 3.x, math.ceil
में ठीक वैसे ही काम करता है जैसा आप चाहते हैं, सिवाय इसके कि यह Decimal
उदाहरण के बजाय int
देता है। यह काम करता है क्योंकि math.ceil
पाइथन 3 में कस्टम प्रकारों के लिए ओवरलोड करने योग्य है। पायथन 2, math.ceil
में Decimal
उदाहरण को float
पर परिवर्तित करता है, संभावित रूप से प्रक्रिया में जानकारी खो देता है, ताकि आप गलत परिणामों के साथ समाप्त हो सकें।
स्रोत
2010-05-09 09:58:07
मैं पाइथन के लिए नया हूं, वास्तव में कल वास्तव में शुरू हुआ। मेरे दूसरे अभ्यास कार्यक्रम में इस समस्या पर ठोकर खाई (पहला निश्चित रूप से अनिवार्य "प्रिंट 'हैलो, वर्ल्ड!';")। इसलिए, मुझे इसका सबसे अच्छा जवाब देने में मुश्किल हो रही है। मैथ्यू फ्लैंचन द्वारा दशमलव। कॉन्टेक्स्ट समाधान मेरे विशेष मामले में काम किया। लेकिन मैं दूसरों को सबसे अच्छा समाधान उठाना चाहता हूं (मेरे जैसे नए लोगों के लिए भी मददगार होगा यदि आप समझा सकते हैं कि एक निश्चित दृष्टिकोण बेहतर क्यों काम करता है) और मैं वापस आकर स्वीकार करूंगा। – Gunjan