2008-11-08 11 views
18

क्या कोई भी .NET फ्रेमवर्क के लिए पहले से लागू किए गए पैसे प्रकार के बारे में जानता है जो i18n (मुद्राएं, स्वरूपण इत्यादि) का समर्थन करता है? मैं एक अच्छी तरह से लागू प्रकार की तलाश में हूं और एक नहीं ढूंढ सकता।क्या किसी को भी .NET में पैसे के प्रकार के बारे में पता है?

+0

दिलचस्प बात यह है कि यह प्रश्न * नए * प्रश्न का डुप्लिकेट होने के लिए बंद हो गया। यह कैसे काम करता है, तुमने मुझे मिल गया है। – Mateo

उत्तर

16

चेक इस लेख A Money type for the CLR

एक सुविधाजनक, उच्च प्रदर्शन CLR जो हानि के बिना अंकगणितीय आपरेशनों, मुद्रा प्रकार, स्वरूपण, और सावधान वितरण और गोलाई संभालती के लिए पैसे संरचना।

+0

बहुत दिलचस्प है। इससे मेरी पिछली परियोजना पर मदद मिलेगी। –

+0

यह वही था जो मैं ढूंढ रहा था! धन्यवाद! – Mateo

+13

इसमें समस्याएं हैं: (1) मैंने कई मामलों को देखा है जहां समान धन मूल्य समान के समान नहीं होते हैं और आपको पहले दशमलव पर डालना पड़ता है। (2) यह बहुत मोटा है: इसमें शामिल हैं: Int64, Int32, 3 स्ट्रिंग्स, और एक UInt16। लेखक दशमलव प्रकार की प्रकृति को समझ में नहीं आया। (3) हैश फ़ंक्शन बल्कि उप-स्थानिक है। (4) आप आंशिक सेंट (यह ठीक है) हो सकता है लेकिन ToString() राउंड दो दशमलव स्थानों पर। –

9

मुझे लगता है कि आप दशमलव डेटा प्रकार का उपयोग करना चाहते हैं, और ToString() के लिए उचित अधिभार का उपयोग करना चाहते हैं।

CultureInfo current = CultureInfo.CurrentCulture; 
decimal myMoney = 99.99m; 

//formats as money in current culture, like $99.99 
string formattedMoney = myMoney.ToString("C", current); 
+1

वर्तमान संस्कृति में उपयोग किए गए अन्य मुद्राओं के बारे में क्या? – DarkWanderer

+0

हाँ ... सुनिश्चित करें कि आप पैसे के लिए दशमलव प्रकार का उपयोग करें। फ़्लोट दशमलव मानों के लिए सटीक नहीं है। – Armstrongest

1

मैं पूर्णांक/लंबा उपयोग करता हूं, और सेंट्स (या पेंस) जैसे बहुत कम मूल्य का उपयोग करता हूं - तब काम करने के लिए कोई दशमलव नहीं होगा, और सभी गणना निकटतम केंद्र में गोल की जा सकती है।

या, मार्टिन फाउलर की पुस्तक "एंटरप्राइज़ एप्लिकेशन आर्किटेक्चर के पैटर्न" पर एक नज़र डालें। उस पुस्तक में, उन्होंने एक मनी क्लास को कार्यान्वित करने के बारे में बात की। http://www.amazon.com/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420

+0

आपके पास यह थोड़ा गलत है। यह बहुत कम मूल्य नहीं है, यह सबसे कम मूल्य है। यह एकमात्र बुलेटप्रूफ उत्तर है जिसे मैंने कभी पाया है - यदि आपके पास वास्तविकता से परे सटीकता है तो आपको उन डिवीजनों के बाद किए गए अंश प्राप्त करने जा रहे हैं जिन्हें नहीं लेना चाहिए। –

+6

हालांकि अमेरिकी मुद्रा में सेंट सबसे कम मूल्य नहीं है; अन्यथा गैस स्टेशन $ 2.149/गैल पर गैस नहीं बेच सके, जो वे करते हैं। इसी तरह, प्रतिशत (जैसे ब्याज) अक्सर अंशकालिक सेंट में परिणाम होता है, और राउंडिंग मध्यवर्ती चरणों में हमेशा उपयुक्त नहीं होती है। – technophile

संबंधित मुद्दे

 संबंधित मुद्दे