बैंक वास्तव में पैसे के लिए डेटा प्रकार के रूप में क्या उपयोग करते हैं? [बन्द है]


9

मुझे कुछ अच्छे विकल्पों की जानकारी है :

  1. सेंट या 10 - सेंट सेंट का प्रतिनिधित्व करने के लिए बड़े पूर्णांक (जैसे, int64_t, mpz_t, कोई भी शब्दचित्र ) - कहते हैं, एक पूर्णांक 1/100 का एक पैसा ($ 1.05 == 10500) दर्शाता है। इसे स्केल्ड पूर्णांक कहा जाता है ।

  2. के लिए उच्च स्तर पुस्तकालय गणित जैसे मनमाना परिशुद्धता दशमलव BigDecimal जावा में, पायथन में दशमलव, जावास्क्रिप्ट में decimal.js, बढ़ावा :: सी में multiprecision ++

  3. स्ट्रिंग्स।

  4. पैक्ड बीसीडी (द्विआधारी कोडित दशमलव) एक अधिक गूढ़ पद्धति है जो पुराने सॉफ़्टवेयर में लोकप्रिय लगती थी। इसके बारे में और पढ़ें

बैंकों (या क्रेडिट कार्ड, एटीएम, पीओएस सिस्टम) के लिए उत्पादन कोड में, वास्तव में किस डेटा प्रकार का उपयोग किया जाता है? मैं विशेष रूप से उन लोगों से पूछ रहा हूं जिन्होंने बैंकों के लिए काम किया है।

संपादित करें: एक ही समस्या वाले डोमेन के लिए सुपर उपयोगी लिंक ("पैसा" डेटा संरचना को लागू करने की आवश्यकता है जो टूटता नहीं है)।

EDIT के साथी ने कहा कि यह एक डुप्लिकेट प्रश्न है : यह "क्या सबसे अच्छा है" का एक सैद्धांतिक प्रश्न नहीं है। मेरे प्रश्न का अनगढ़ शीर्षक पढ़ें। मैं पूछ रहा हूं कि लोगों ने बैंकों के कोडबेस में पहली बार क्या देखा है।

मुझे पता है कि BigDecimal स्पष्ट रूप से "सबसे अच्छा" है, लेकिन अच्छा APIs जैसे कि हर जगह उपलब्ध नहीं है, यह विश्वास है या नहीं, और दशमलव पुस्तकालयों को विरोधाभासी के रूप में महंगा है।


4
विशेष रूप से एक बैंक के लिए संबंधित बैंक की तरह। कुछ साल पहले मैंने लेन-देन और भुगतान से निपटने वाली प्रणाली पर काम किया था और हमने फ्लोटबग्स को पूरी तरह से नया डेटाटाइप पेश करके एक वर्ग को दरकिनार किया था, जिसमें न केवल दो 64 बिट पूर्णांक, एक पूरे नंबर का प्रतिनिधित्व करने वाला, एक अन्य दशमलव भाग शामिल था।
एंडी

1
डेविड पैकर जो एक महान विचार है। मुझे लगता है कि यह आम कार्यान्वयन से बेहतर हो सकता है, जो दो पूर्णांकों की एक संरचना है: एक बड़ी संख्या और प्रतिपादक (मूल्य का log_10)
zelcon

1
प्रश्न 4 वें विकल्प की जरूरत है: BCD
ब्रेंडन

3
शीर्षक में प्रश्न का उत्तर देने के लिए, एक COBOL S9 (13) V99 COMP-3। 8 8 बिट बाइट्स में फिट बैठता है।
गिल्बर्ट ले ब्लैंक

2
आपके यहाँ जो समस्या है वह "कौन सा बैंक" है। वे COBOL, Java, C / C ++, .NET आदि का उपयोग करते हैं - इसका कोई जवाब नहीं है कि जो आप जानना चाहते हैं वह फिट होगा क्योंकि इनमें से प्रत्येक विभिन्न प्रकारों का उपयोग करता है। आप बैकिंग स्टोरेज के बारे में पूछ सकते हैं, लेकिन तब भी ओरेकल दशमलव प्रकार, या एक मेनफ्रेम प्रकार का उपयोग तकनीक के आधार पर किया जाएगा।
gbjbaanb

जवाबों:


-2

अधिकांश बैंक अभी भी मेनफ्रेम पर हैं। मेनफ्रेम पर डेटा प्रकार आज के मानकों के बहुत अनाड़ी हैं। वे वर्णों के रूप में एन्कोड किए गए अंक मात्र हो सकते हैं। तो 1234.56 वास्तव में उन अंकों से युक्त एक स्ट्रिंग होगा। और एक चरित्र 4, 6 या 9 बिट्स हो सकता है। या, "अनुकूलित" स्थितियों में, एक वर्ण में दो अंकों को पैक किया जा सकता है। आखिरकार, आपको एक दशमलव चरित्र के लिए केवल 4 बिट्स (एक कुतरना) की आवश्यकता है।

आप आश्चर्य करेंगे कि इन समाधानों के साथ वे कभी पृथ्वी पर कैसे आए। वे अक्सर हार्डवेयर वास्तुकला में आधारित होते हैं। हम 8-बिट आर्किटेक्चर के गुणकों के लिए उपयोग किए जाते हैं। पुराने दिनों में यह एक दिया नहीं था।

यूनिसिस 36-बिट शब्दों का उपयोग करता है और डेटा को स्टोर करने के लिए 6-बिट, 9-बिट, 12-बिट या 18-बिट भागों में शब्दों को तोड़ दिया जा सकता है।

बस हमें खुशी है कि अब हमें इस सामान से नहीं जूझना पड़ेगा। .NET फ्रेमवर्क में एक अच्छा प्रकार है जिसे दशमलव कहा जाता है जो मुद्राओं के लिए अच्छा है।


1
@gnat: यह एक साल पुराना और कुछ हद तक सेल्फ-सर्विंग है; बैंक वित्तीय आंकड़ों को कैसे बनाए रखते हैं? मेनफ्रेम
गिल्बर्ट ले ब्लैंक

2
-1 के लिए " मेनफ्रेम पर डेटा प्रकार आज के मानकों के लिए बहुत अनाड़ी हैं। " आप स्पष्ट रूप से मेनफ्रेम के बारे में कुछ नहीं जानते हैं। IEEE-754 फ़्लोट्स, दशमलव डेटा, आदि लाजिमी है।
रॉस पैटरसन

1
@Ross IEEE 754 1985 में स्थापित किया गया था। मेनफ्रेम सॉफ्टवेयर का बहुत अधिक पुराना है। सक्रिय मेनफ्रेम सिस्टम में बीसीडी और इसी तरह के एनकोडिंग अभी भी बहुत आम हैं। और वे आधुनिक एन्कोडिंग के खिलाफ अच्छी तरह से तुलना नहीं करते हैं। लेकिन कृपया, हमें सवाल का सही जवाब दें। आप स्पष्ट रूप से मेनफ्रेम के बारे में बहुत कुछ जानते हैं। हालांकि आपकी टाइमिंग एक-दो दशकों से बंद हो रही है ... हमें बताएं।
मार्टिन माट

1
.NET का एक अच्छा प्रकार है जिसे Decimal कहा जाता है .. जो वास्तव में धीमा है और लाखों लेनदेन को संसाधित करते समय बिल्कुल उपयोगी नहीं है। भगवान का शुक्र है कि हमारे पास उनके पुरातन, लेकिन तेज, डाटा प्रोसेसिंग के साथ मेनफ्रेम हैं।
gbjbaanb

1
@MartinMaat पैक्ड दशमलव मुद्रा मूल्यों के लिए सबसे आम था, जब मैंने 1972 में प्रोग्रामिंग शुरू की थी। यह आईबीएम एस / 360 परिवार पर एक आधार डेटाटाइप था, और मेरा मानना ​​है कि यह 1400 श्रृंखला से पहले व्यावसायिक विकल्प का हिस्सा था।
रोस पैटरसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.