2009-03-15 9 views
5

क्या किसी प्रकार के चर के रूप में 3/6 जैसे अंश को स्टोर करना संभव है? जब मैं इसे आज़माता हूं तो यह केवल संख्याओं को पहले/से पहले स्टोर करता है। मुझे पता है कि मैं 2 चर का उपयोग कर सकता हूं और उन्हें विभाजित कर सकता हूं, लेकिन इनपुट एक टेक्स्ट फ़ील्ड से है। क्या ये संभव भी है?फ्रैक्शन से दशमलव तक और पीछे?

मैं ऐसा करना चाहता हूं क्योंकि मुझे दशमलव बाधाओं के लिए अंशों की गणना करने की आवश्यकता है।

एक बोनस प्रश्न;) - क्या एक अंश में दशमलव मान की गणना करने का कोई आसान तरीका है? धन्यवाद ..

उत्तर

3

सबसे अच्छा काम करना एक अंश वर्ग (या तर्कसंगत संख्या वर्ग) को लागू करना है। आम तौर पर यह एक संख्यात्मक और denominator ले जाएगा और एक डबल प्रदान करने में सक्षम हो, और अन्य अंश वस्तुओं के साथ मूल गणित करें। यह अंशों को पार्स और प्रारूपित करने में भी सक्षम होना चाहिए।

Rational Arithmetic on Rosetta Code से शुरू करने के लिए कुछ अच्छा लग रहा है।

5

ठीक है, मूल अंश को दशमलव से निकालने का कोई सही तरीका नहीं है।

उदाहरण: ले 5/10

आप 0.5

अब

मिल जाएगा, 0.5 भी वापस 1/2, 2/4, 3/6 के लिए अनुवाद, आदि

आपका सबसे अच्छा शर्त प्रत्येक इंटीजर को अलग से स्टोर करना है, और बाद में गणना करना है।

3

मुझे डर है कि इस पर आपके लिए कोई आसान जवाब नहीं है। अंश बनाने के लिए, आपको टेक्स्ट फ़ील्ड को '/' पर विभाजित करना होगा, दो हिस्सों को double एस में परिवर्तित करना होगा, और उन्हें विभाजित करना होगा। इसे वापस एक अंश में परिवर्तित करने के लिए, आपको गणित पाठ्यपुस्तक खोलने और इसे समझने के लिए क्रैक करना होगा। (इससे भी बदतर, एक डबल वास्तव में सटीक नहीं है-आपको लगता है कि इसमें 0.1 है, लेकिन वास्तव में यह 0.0 99 99 99 99 99 99 99 8 9 726 या ऐसा कुछ है, इसलिए आपको एक परिशुद्धता चुननी होगी और इसके लिए जाना होगा, या कुछ प्रकार का अंश लिखना होगा वर्ग जो पूर्णांक की एक जोड़ी पर आधारित है।)

1

क्या किसी अंश में दशमलव मान की गणना करने का कोई आसान तरीका है?

आप दशमलव अंक की एक निश्चित संख्या के लिए अपने दशमलव मान सीमित करते हैं आप एक लुकअप तालिका बना सकते हैं।

 
0.3333, 1/3 
0.6666, 2/3 
0.0625, 1/16 
0.1250, 1/8 
0.2500, 1/4 
0.5000, 1/2 
0.7500, 3/4 
etc... 

तो यदि उपयोगकर्ता इनपुट 0.5 आप इसे 0 दशमलव के साथ पैड करते हैं तो आपको 4 दशमलव स्थान मिलते हैं। फिर आप "1/2" लौटने के लिए लुकअप टेबल का उपयोग करेंगे। लुकअप टेबल शायद एक प्रकार का शब्दकोश होना चाहिए।

या तो अनुमान लगाने में बहुत मुश्किल नहीं होगी। उदाहरण के लिए, यदि उपयोगकर्ता 0.0624 दर्ज करता है तो आप उस दशमलव के निकटतम तालिका में आसानी से मूल्य का चयन कर सकते हैं। इस मामले में यह "1/16" वापस आ जाएगा।

दशमलव/अंश जोड़ों के सीमित सेट के टाइपिंग/प्रवेश करने से आपको डर नहीं है (यह वास्तव में आपके द्वारा चुने गए परिशुद्धता के आधार पर बड़ा नहीं है)।

यदि अन्य सभी विफल हो जाते हैं तो शायद एक Google खोज एक लाइब्रेरी प्रकट करेगी जो इस प्रकार आपके लिए यह करती है।

+0

एचआरएम ... डाउनवॉट्स क्यों? – user72491

3

जैसा कि कहा गया है, यह संख्या संख्यात्मक और denominator को स्टोर करने के लिए है, जिस तरह से आप इसे कागज पर लिख सकते हैं।

'सी' के लिए डॉक्स में 'तर्कसंगत' के लिए

GNU Multiple Precision Arithmetic Library

नज़र का उपयोग करें।

+0

प्रश्न सी, हां टैग किया गया है। हालांकि, मुझे लगता है कि लेखक ने गलती की और सोचा कि ओब्जे-सी और सी संबंधित हैं। फिर भी, एक उपयोगी जवाब। +1। – strager

+0

@strager: उद्देश्य-सी और सी संबंधित हैं, उसमें एक दूसरे का सख्त सुपरसैट है। जीएमपी का इस्तेमाल ओब्जे-सी के साथ किया जा सकता है, हालांकि यह शायद इसके लिए अधिक है। –

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