पर पाइथन डेसिमल ऑब्जेक्ट को प्रारूपित करें मैंने पाइथन की दशमलव वस्तु की सबसे मौलिक अवधारणा की कमी पर अनगिनत घंटे शोध, पढ़ना, परीक्षण करना और अंततः भ्रमित किया है: एक दशमलव के आउटपुट को एक स्ट्रिंग में स्वरूपित करना।एक निश्चित परिशुद्धता
मान लेते हैं कि हम निम्न मान के साथ कुछ तार या दशमलव वस्तुओं करते हैं:
0.0008
11.1111
222.2222
3333.3333
1234.5678
लक्ष्य बस दूसरा दशमलव स्थान के लिए दशमलव के सटीक स्थापित करने के लिए है। उदाहरण के लिए, 11.1111
को 11.11
, और 1234.5678
1234.57
के रूप में स्वरूपित किया जाएगा।
मैं निम्न के समान कोड कल्पना:
import decimal
decimals = [
decimal.Decimal('0.0008'),
decimal.Decimal('11.1111'),
decimal.Decimal('222.2222'),
decimal.Decimal('3333.3333'),
decimal.Decimal('1234.5678'),
]
for dec in decimals:
print dec.as_string(precision=2, rounding=ROUND_HALF_UP)
जिसके परिणामस्वरूप उत्पादन होगा:
0.00
11.11
222.22
3333.33
1234.57
जाहिर है हम दशमलव के संदर्भ के परिशुद्धता का उपयोग नहीं कर सकते हैं, क्योंकि इस विचार कुल में ले जाता है अंकों की संख्या, न केवल दशमलव परिशुद्धता।
मैं अपने मूल्य को आउटपुट करने के लिए दशमलव को एक फ्लोट में परिवर्तित करने में भी रूचि नहीं रखता हूं। दशमलव के पीछे का अंतिम कारण फ्लोट पर गणना और चलने से बचने के लिए है।
अन्य समाधान क्या हैं? मैं समझता हूं कि स्टैक ओवरफ़्लो पर कई अन्य समान प्रश्न हैं, लेकिन उनमें से कोई भी मुझे उस अंतर्निहित मुद्दे को हल करने के लिए नहीं मिला है जिसकी मैं पूछताछ कर रहा हूं।
बहुत बहुत धन्यवाद!
कोई अंतर्निहित दशमलव इंटरफ़ेस उत्पादन स्वरूपण या दशमलव परिशुद्धता से निपटने के लिए? –
@ जोशुआबर्न: यह * आउटपुट स्वरूपण के लिए अंतर्निहित इंटरफ़ेस है। –
जो निश्चित रूप से मेरे प्रश्न का उत्तर देता है, बहुत बहुत धन्यवाद! मेरी सबसे बड़ी चिंता यह थी कि प्रारूप() वास्तविक प्रारूप करने से पहले एक फ्लोट के लिए मूल्य कास्टिंग कर रहा था। –