मैं फ्लोट्स सोच रहा हूं। रिकॉर्ड के लिए मैं NHibernate का भी उपयोग कर रहा हूं।सी # और एसक्यूएल सर्वर में प्रतिशत का प्रतिनिधित्व करने के लिए मुझे किस प्रकार का उपयोग करना चाहिए?
सी # और एसक्यूएल सर्वर में प्रतिशत का प्रतिनिधित्व करने के लिए मुझे किस प्रकार का उपयोग करना चाहिए?
उत्तर
decimal
आप राउंडिंग के चलते सटीक नहीं खोएंगे।
यह इस बात पर निर्भर करता है कि आपको कितनी सटीक आवश्यकता है। यदि आपको किसी भी दशमलव स्थान की आवश्यकता नहीं है तो आप छोटे int का भी उपयोग कर सकते हैं। लेकिन अगर आपको कुछ दशमलव स्थानों की आवश्यकता होती है तो आम तौर पर फ्लोट अच्छा होता है। मैं एलएलबीएलजेन का उपयोग करता हूं और%
के लिए तैरता है यह इस बात पर निर्भर करता है कि आप उनके लिए क्या उपयोग कर रहे हैं।
यदि यह प्रदर्शन के लिए है, तो एक int बस ठीक होगा, और एक फ्लोट से तेज़ होगा। यदि यह कम गणित के लिए है, तो एक इंट अभी भी ठीक करेगी (या यहां तक कि एक मामूली भी, किसी भी मामले में)।
यदि आप बहुत सारे गणित कर रहे हैं, तो एक फ्लोट शायद सबसे अच्छा, प्रदर्शन-वार होगा।
बेशक, जब तक कि आप प्रतिशत के छेड़छाड़ का बहुत कुछ नहीं कर रहे हैं, यह वास्तव में अंत में, प्रदर्शन के अनुसार, आधुनिक प्रोसेसर की गति को ध्यान में रखेगा।
संपादित करें: बेशक, 'int' मानता है कि आप केवल सख्त, पूर्ण-संख्या वाले पर्सेंट का उपयोग कर रहे हैं। यदि आप नहीं हैं, तो आप हमेशा फ्लोट या डीसी के साथ बेहतर होंगे।
सवाल int बनाम फ्लोट के बारे में नहीं पूछा था ... आप यह भी कहते हैं कि इट्स तेज़ हैं लेकिन फिर यह भी कहते हैं कि प्रदर्शन के लिए फ्लोट बेहतर हैं। –
@ स्टुअर्टब्रानहम: और यदि आप ध्यान देते हैं, तो मैंने उन परिस्थितियों को दिया जिनमें से दोनों सत्य हैं। और एक प्रतिशत को एक इंट (75, जिसका मतलब 75%) या एक फ्लोट (75% 75% का प्रतिनिधित्व करता है, या 75.5 का अर्थ 75.5%, या 7575% 75.5%) के रूप में संग्रहीत किया जा सकता है। सरल भंडारण और प्रदर्शन के लिए, एक int तेज है। यदि आपको संख्याओं के साथ काम करने की ज़रूरत है, तो एक फ्लोट सबसे अच्छा है - आप दशमलव स्थानों को स्टोर कर सकते हैं और अंतर्निहित गणित फ़ंक्शन हैं जो इसे बहुत ही सक्षम बनाते हैं। – Jeff
SQL सर्वर के संबंध में, यह दुर्लभ है कि मैं प्रतिशत संग्रहित करता हूं। 10 में से 9 बार आप उस डेटा को स्टोर करना चाहते हैं जिसका उपयोग प्रतिशत प्राप्त करने और आवश्यकतानुसार गणना करने के लिए किया जाता है।
यदि और केवल यदि आपके पास अनुभव दिखाने वाला अनुभवजन्य डेटा बहुत धीमा है, तो आगे बढ़ें। राउंडिंग मुद्दों से बचने के लिए पहले सुझाए गए दशमलव का प्रयोग करें।
यह डोमेन विशिष्ट हो सकता है। ऐसे समय होते हैं जब आपके पास डेटा नहीं होता है, जो कि – mattlant
का उपयोग करने के लिए रंग के% में प्रवेश करने वाले उपयोगकर्ता के रूप में होता है, जैसा कि @ मैटलेंट ने कहा था, मुझे जिन प्रतिशतों को स्टोर करने की आवश्यकता है वे डोमेन प्रतिशत हैं जैसे कि 17.5% वैट और 40% छूट आदि। –
यह काफी हद तक निर्भर करता है कि आपको कितनी सटीकता की आवश्यकता है; सबसे महत्वपूर्ण बात सुसंगत और स्पष्ट होना है। यह सुनिश्चित करने के लिए सावधानी बरतें कि आप क्षेत्र के उपयोग में सुसंगत हैं .. यानी इसे एक फ्लोट (एन = .5) के रूप में स्टोर न करें और फिर इसे पुन: स्थापित करने का प्रयास करें जैसे कि यह आपके कोड के दूसरे भाग में एक पूर्णांक था (mypercentage = n/100)। जब तक आप सुनिश्चित न करें कि ऐसा न करें और आप ऐसे लेजर का निर्माण नहीं कर रहे हैं जिसके लिए परिशुद्धता के 30 महत्वपूर्ण अंक की आवश्यकता है, तो अपनी नाव को int, double, या जो भी फ्लोट के बीच अपना पसंदीदा स्वाद चुनें। वाका वाका।
उत्तर एप्लिकेशन-निर्भर है।
अन्य ने इंगित किया है कि सटीक मूल्य का प्रतिनिधित्व करने के लिए दशमलव फ़्लोट से बेहतर है। लेकिन कभी-कभी बढ़ी हुई परिशुद्धता के लिए एक फ्लोट का उपयोग करना बेहतर होता है (उदाहरण के लिए गणना की गई वजन का एक सेट जो 100% तक जोड़ता है, शायद फ्लोट के रूप में बेहतर प्रतिनिधित्व किया जाता है)
- 1. सी # में पैसे का प्रतिनिधित्व करने के लिए मुझे किस डेटा प्रकार का उपयोग करना चाहिए?
- 2. मुझे किस डीबी का उपयोग करना चाहिए?
- 3. मुझे किस प्रकार का संग्रह उपयोग करना चाहिए?
- 4. रिकॉर्ड को संग्रहीत करने के लिए मुझे किस डेटाबेस का उपयोग करना चाहिए, और मुझे इसका उपयोग कैसे करना चाहिए?
- 5. कोर डेटा में GUID स्टोर करने के लिए मुझे किस डेटा प्रकार का उपयोग करना चाहिए?
- 6. मुझे किस पायथन का उपयोग करना चाहिए?
- 7. मुझे किस प्रकार का अपवाद फेंकना चाहिए?
- 8. एकाधिक रूपांतरणों को करने के लिए मुझे किस WPF छवि प्रकार का उपयोग करना चाहिए
- 9. मौद्रिक मूल्यों को संग्रहीत करने के लिए मुझे किस डेटा-प्रकार का उपयोग करना चाहिए?
- 10. छवि को सहेजने के लिए मुझे किस चर प्रकार का उपयोग करना चाहिए?
- 11. वेबसाइट बनाने के लिए मुझे किस प्रकार का उपयोग करना चाहिए
- 12. मुझे किस वीएमवेयर एपीआई का उपयोग करना चाहिए?
- 13. जीमेल के साथ काम करने के लिए मुझे किस भाषा और पुस्तकालयों का उपयोग करना चाहिए?
- 14. सी # मुझे किस प्रकार का अपवाद उठाना चाहिए?
- 15. HTTP क्लाइंट को लागू करने के लिए मुझे किस सी ++ लाइब्रेरी का उपयोग करना चाहिए?
- 16. एक व्यूमोडेल को मैप करने के लिए ऑटोमैपर का उपयोग करने के बाद मुझे और किस प्रकार परीक्षण करना चाहिए?
- 17. सी # मुझे सूची का उपयोग कब करना चाहिए और मुझे सरणीसूची का उपयोग कब करना चाहिए?
- 18. एनएलटीके में मुझे किस शब्द स्टेमर का उपयोग करना चाहिए?
- 19. मुझे किस गेम इंजन का उपयोग करना चाहिए?
- 20. सील क्यूब डिटेक्शन के लिए मुझे किस तरह का वर्णनकर्ता का उपयोग करना चाहिए?
- 21. उद्देश्य-सी में, एनएसईएक्सप्शन के अपवाद नाम के लिए मुझे किस नाम का उपयोग करना चाहिए?
- 22. वीआईएम में मुझे किस मोड़ का उपयोग करना चाहिए?
- 23. आईओएस प्रोजेक्ट के लिए सी में फ़ाइल नाम स्ट्रिंग के लिए मुझे किस प्रकार का उपयोग करना चाहिए?
- 24. सीएसएस में मुझे किस कोटेशन मार्क का उपयोग करना चाहिए?
- 25. मुद्रा/धन के लिए मुझे किस XML डेटा प्रकार का उपयोग करना चाहिए?
- 26. गुई टूलकिट, मुझे किस का उपयोग करना चाहिए?
- 27. तालिका पंक्तियों को रखने के लिए मुझे किस प्रकार की डेटा संरचना का उपयोग करना चाहिए?
- 28. मुझे किस नियम इंजन का उपयोग करना चाहिए?
- 29. मुझे किस डक्ट टाइप का उपयोग करना चाहिए?
- 30. एक वैध सीआरयूडी वेबफॉर्म उत्पन्न करने के लिए मुझे किस पर्ल मॉड्यूल का उपयोग करना चाहिए?
बाद में इस प्रश्न पर आ रहा है, मुझे यह जवाब अधिक सहायक WRT मिला प्रश्न का SQL सर्वर भाग: http://stackoverflow.com/questions/158966/what-types-should-i-use-to-represent-percentages-in-c-and-sql-server/159780#159780। ऐसा लगता है कि उत्तर सीएलआर प्रकार के रूप में दशमलव है और एसक्यूएल सर्वर प्रकार के लिए फ्लोट है, कम से कम यदि आप आंशिक प्रतिशत स्टोर करने की संभावना रखते हैं। –