ययन .NET के लिए मनी डेटा प्रकार?




हिंदी में यूजीसी नेट 1 पेपर नोट्स pdf (7)

मनी डेटा प्रकार @ कोड परियोजना

http://www.codeproject.com/KB/vb/moneyDatatype.aspx

लेखक इसी तरह की समस्या बताता है:

हाल ही में एक आवेदन के हिस्से के रूप में मुझे एहसास हुआ कि मुद्रा समर्थन के लिए .NET की कमी कितनी है, मुझे गलत मत समझो, कई "टुकड़े" हैं, लेकिन सभी वस्तुओं के लिए गोंद गायब है , इसलिए यह लेख उसी के लिए एक प्रतिक्रिया है।

और उद्देश्यों को पूरा करता है

मेरे मुख्य उद्देश्य बन गए

  • मूल्य के साथ मुद्रा प्रकार को स्टोर करें (जैसे AUD, US, DKK)।
  • फॉर्मेटिंग विवरण (यानी दशमलव समूहन, मुद्रा प्रतीक, आदि)।
  • रूपांतरण प्रदाता, मैं इसे हार्ड कोड नहीं करना चाहता था क्योंकि यह डेटाटाइप है और समाधान नहीं है।
  • विकास सुरक्षा सुविधाएँ (जैसे विभिन्न मुद्रा प्रकारों पर अंकगणित को रोकना)।

अब तक यह निकटतम .NET कोड है जो मैं खोज रहा हूं। यह धन की अधिकांश आवश्यकताओं को पूरा करता है।

अगर किसी के पास कुछ बेहतर है तो इसकी बहुत प्रशंसा होगी।

.NET के लिए एक अच्छे मनी डेटा प्रकार की खोज करना जो मुद्राओं और विनिमय दरों (संबंधित व्यवहार और संचालन के साथ) का समर्थन करता है।

  • नोट: मैंने लेखक केंट बेक की पुस्तक टेस्ट-ड्रिवेन डिवेलपमेंट बाय प्रिंट में देखे गए सोर्स कोड की खोज शुरू की - वह एक अच्छी मौद्रिक अवधारणा विकसित करता है। पूरा स्रोत ऑनलाइन खोजने में असमर्थ। पुस्तक में एक एकल सूची नहीं है - इसके बजाय यह पुस्तक की अवधि में स्रोत कोड विकसित करता है।

हालाँकि पुस्तक अधिक गहराई तक नहीं जाती है, फिर भी मैं विभिन्न राउंडिंग तंत्रों का समर्थन करने के लिए मनी क्लास को पसंद करूंगा क्योंकि यह दुनिया भर के वित्तीय संस्थानों में भी भिन्न है।

संपादित करें 1: स्पष्टीकरण

"मनी क्लास" से मेरा मतलब एक .NET डेटा प्रकार है जिसका उपयोग मैं मुद्रा और इसके संचालन के लिए मुद्रा समर्थन और विनिमय दर की गणना के साथ कर सकता हूं। ऐसा कुछ एक उच्च स्तर का अमूर्त है और आंतरिक रूप से एक आदिम डेटा प्रकार का उपयोग कर सकता है। इसके अलावा यह वर्गों के एक बंडल पर निर्भर हो सकता है जैसे: धन, ExchangeRate, बैंक, आदि।

यह एक मान प्रकार (यानी संरचना) या संदर्भ प्रकार (यानी वर्ग) हो सकता है, लेकिन या तो यह पूर्ण होगा और पूर्वोक्त सुविधाओं का समर्थन करेगा।

संपादन 2: मनी डेटा प्रकार के उद्देश्य

(इससे यह भी पता चलता है कि एक कच्चा दशमलव, इंट या अन्य आदिम प्रकार सभी धन की जरूरतों के लिए पर्याप्त नहीं होगा)

मनी डेटा प्रकार के उद्देश्य होंगे:

  • सुरक्षा सुविधाएँ (यानी विभिन्न मुद्रा प्रकारों पर अंकगणित को रोकना)।
  • मूल्य के साथ मुद्रा प्रकार को स्टोर करें (जैसे AUD, US, DKK)।
  • फॉर्मेटिंग विवरण (यानी दशमलव समूहन, मुद्रा प्रतीक, आदि)।
  • रूपांतरण प्रदाता (उदाहरण के लिए विनिमय दर) समाधान को समाप्त करने में मदद करने के लिए।
  • एक परिणाम प्राप्त करने के लिए एक अभिव्यक्ति में कई मुद्राओं को कम करें।

नोट: भिन्न डेटा मान जैसे विनिमय दर को किसी बाहरी स्रोत से लोड किया जा सकता है और उपयोग किया जा सकता है। यह प्रश्न कुछ भी अनुमान नहीं लगाता है कि डायनेमिक मनी की अवधारणा में कठिन-कोडित है।


मार्टिन फाउलर पैसे को "क्वांटिटी" का एक विशेष मामला मानते हैं, दूसरे वह सोचते हैं कि पैसे के लिए सही डेटा प्रकार बिग इंटेगर होना चाहिए। और उसके पास एक बिंदु है।

मार्टिन फॉलर द्वारा मात्रा और धन पैटर्न


NodaMoney एक पुस्तकालय प्रदान करता है जो .NET में प्रथम श्रेणी के नागरिक के रूप में मनी का व्यवहार करता है और मुद्राओं और स्वरूपण जैसे सभी बदसूरत बिट्स को संभालता है।

यह आईएसओ 4217 में मुद्राओं का अनुपालन करता है। और यह जावा लाइब्रेरी JodaMoney का .NET समकक्ष है।


यदि आप पैटर्न खोज रहे हैं, तो आप Joda Money की जाँच कर सकते हैं। यह जावा है, लेकिन आपको एक एपीआई पर कुछ विचार देना चाहिए। ऑपरेटर ओवरलोडिंग के कारण एसी # कार्यान्वयन बहुत कम हो जाएगा।


एक नज़र यहाँ है:

http://blogs.msdn.com/lucabol/archive/2008/12/04/financial-functions-for-net-released.aspx

यह एक .NET पुस्तकालय प्रदान करता है जो सभी एक्सेल वित्तीय कार्यों की नकल करता है।

मुद्रा रूपांतरण करना मुश्किल है, क्योंकि जाहिर है कि यह लगातार बदलता रहता है, इसलिए हार्डकोडेड मूल्य कम या ज्यादा बेकार होंगे। हालाँकि, आप अप-टू-डेट विनिमय दरों तक पहुँचने के लिए एक वेब सेवा का उपयोग करने में सक्षम हो सकते हैं। This एक अच्छी शुरुआत की तरह दिखता है। इससे भी बेहतर, उसी कन्वर्टर के लिए एक REST- शैली इंटरफ़ेस:

http://www.webservicex.com/CurrencyConvertor.asmx/ConversionRate?FromCurrency=GBP&ToCurrency=EUR

ताकि यूरो को पाउंड स्टर्लिंग की रूपांतरण दर का आउटपुट मिले।


मैं यहाँ पैसे पर अमूर्त परत होने के लाभ के बारे में आपकी बातों को समझता हूँ। हालांकि, पैसे और इसके "संचालन" पर मेरा दृष्टिकोण काफी धुंधला है। File जैसी अन्य चीज़ों के लिए, यह मेरे लिए स्पष्ट है कि Open , Read , Write , Close ऑपरेशन होना चाहिए। लेकिन पैसे के लिए, मैं बुनियादी गणित संचालन (+, -, *, /) के अलावा और बहुत कुछ नहीं सोच सकता

C ++ क्वांटिटेटिव फाइनेंस लिब में से एक मुझे पता है कि इसमें मनी एब्स्ट्रैक्शन ( http://quantlib.org/reference/class_quant_lib_1_1_money.html ।) शामिल है, लेकिन आप स्पष्ट रूप से देख सकते हैं कि यह एक बहुत ही पतला आवरण है जो मूल ऑपरेटर ओवरलोड और यूनिट रूपांतरण प्रदान करता है। दशमलव।

ज्यादातर मामलों में, मुझे लगता है कि दशमलव आपकी आवश्यकता को पूरा कर सकता है। यदि आपके लिए विशिष्ट मनी ऑपरेशन का समर्थन करने की आवश्यकता है, तो मुझे लगता है कि अपनी कक्षाओं को रोल आउट करना ठीक है।


आप शायद पाएंगे कि अपनी कक्षा बनाने से आपको सबसे अच्छा समाधान मिलेगा।







financial