प्रश्न का उत्तर satchmo_utils एप्लिकेशन निर्देशिका बाहर
चेक सही है, लेकिन कुछ उपयोगकर्ताओं DecimalField और FloatField के बीच अंतर पता लगाने के लिए इस प्रश्न पर ठोकर होगा। फ्लोट राउंडिंग मुद्दा सेठ लाता है मुद्रा के लिए एक समस्या है।
DecimalField:
DecimalField from the Django Docs पर अधिक।
FloatField:
- रिटर्न, नाव प्रकार में बनाया
- कोई स्मार्ट राउंडिंग, और वास्तव में Seths जवाब में वर्णित के रूप मुद्दों गोलाई हो सकती है।
- कि आप DecimalField
- से प्राप्त डेटाबेस (PostgreSQL) में अतिरिक्त फ़ॉर्म सत्यापन, FloatField एक "डबल परिशुद्धता" प्रकार के रूप में सहेजा जाता है, और भंडारण के रूप में "सादे"
सेट कर दिया जाता है नहीं है
FloatField from the Django Docs पर अधिक।
दोनों पर लागू होता है:
- दोनों क्षेत्रों "फील्ड" वर्ग से विस्तार करने और 'खाली', 'अशक्त', 'verbose_name', 'नाम' स्वीकार कर सकते हैं, 'primary_key', 'MAX_LENGTH', 'अद्वितीय', 'db_index', 'rel', 'default', 'संपादन योग्य', 'serialize', 'unique_for_date', 'unique_for_month', 'unique_for_year', 'विकल्प', 'help_text', 'db_column', 'db_tablespace' ',' auto_created ',' validators ',' error_messages 'विशेषताएँ, क्योंकि "फ़ील्ड" से विस्तारित सभी फ़ील्ड होंगे।
- दोनों फ़ील्ड के लिए डिफ़ॉल्ट फॉर्म विजेट एक टेक्स्ट इनपुट है।
मैं जब दो क्षेत्रों के बीच अंतर की तलाश में तो मुझे लगता है यह एक ही स्थिति :)
अद्यतन में उन लोगों में मदद मिलेगी इस सवाल में आए: इस सवाल का जवाब करने के लिए, मुझे लगता है कि आप प्राप्त कर सकते हैं या तो मुद्रा का प्रतिनिधित्व करने के लिए, हालांकि दशमलव एक बेहतर फिट है। जब यह फ़्लोट की गणना करता है तो एक गोलाकार मुद्दा होता है ताकि आपको अपने फ़्लोट प्रतिनिधित्व को दो दशमलव स्थानों पर गोल रखने के लिए round(value, 2)
का उपयोग करना पड़े। यहां एक त्वरित उदाहरण दिया गया है:
>>> round(1.13 * 50 + .01, 2)
56.51
आप अभी भी फ्लोट और राउंड के साथ परेशानी में पड़ सकते हैं। यहाँ की तरह हम इसे 5 के एक मूल्य पर नीचे दौर देखें:
>>> round(5.685, 2)
5.68
लेकिन इस मामले में, यह दौर होगा:
>>> round(2.995, 2)
3.0
यह है सब के साथ क्या करने के लिए कैसे नाव स्मृति में संग्रहीत किया जाता है । here देखें।
'>> 10.50 - 0.20' पायथन 2.7 में '10.3' प्राप्त करें। – Rockallite
वेल्प, बकवास। मैं अपने फ्लोटफिल्ड फ़ील्ड/कॉलम से दशमलव डेटा को बहुत से डेटा माइग्रेट कर दूंगा ... – teewuane
हाई टाइम में हमारे पास "पैसे के लिए फ़्लोटिंग पॉइंट का उपयोग न करें" बॉबन्स के http://stackoverflow.com/a/1732454/ 604511 – aitchnyu