शीर्षक के अनुसार, मेरे पास ऑब्जेक्ट्स का एक सेट है - उन्हें आवंटन पर कॉल करें - जिसमें & कोई विवरण शामिल है। सेट में सभी नंबर 100% तक जोड़ते हैं, लेकिन प्रदर्शन उद्देश्य के लिए मैं कभी-कभी पूरे प्रतिशत तक जाता हूं। कुछ किनारे के मामलों में, संख्याओं को गोल करने के बाद मैं 99% के साथ समाप्त होता हूं।गोल करने के लिए सेट में उच्चतम संख्या प्राप्त करें, और इसके बजाय इसे
उदाहरण:
Description | Actual | Rounded
===============================
Allocation A | 65.23% | 65%
Allocation B | 25.40% | 25%
Allocation C | 7.95% | 8%
Allocation D | 1.42% | 1%
===============================
Total | 100% | 99% (Bad!)
अनुरोध किया समाधान है, जो अपूर्ण है लेकिन क्या करेंगे, उच्चतम एक नीचे पूर्ण होना मिल रहा है, और यह दौर अप बजाय। ऊपर दिए गए उदाहरण में, गोलाकार होने पर 1.42% 2% हो जाएगा। संपादित करें: "सर्वोच्च व्यक्ति को गोल करने के लिए" मेरा मतलब है कि वह सबसे दूर है। इसलिए 1.42% 0.42 से नीचे गोल किया जा रहा है, जबकि 65.23 केवल कोड 0.23
पूर्णांक किया जा रहा है तो अब, मैं एक वर्ग
public class Allocation
{
public string Description {get;set;}
public doubel Percentage {get;set;}
}
है और ये एक IEnumerable<Allocation>
में आयोजित की जाती हैं। तो, संभावित रूप से LINQ का उपयोग करके, मैं कैसे निर्धारित कर सकता हूं कि गोल करने वाला कौन सा है। या अधिक विशेष रूप से, मैं गोल संख्याओं के साथ एक नया IEnumerable<Allocation>
कैसे उत्पन्न कर सकता हूं।
यदि किसी के पास हमेशा गोलाकार प्रतिशत बनाने के लिए कोई अन्य सुझाव है तो हमेशा 100% के बराबर होता है जो इससे भी बेहतर होगा!
आवश्यकताओं और एल्गोरिथ्म पर एक टिप्पणी: ऐसा लगता है कि आप यह निर्धारित करने के लिए कितना अधिक या 100 के तहत अपने गोल मान रहे हैं, तो के रूप में कई मूल्यों के रूप में उन्हें दूसरी तरह गोलाई की जरूरत को समायोजित करना चाहते हैं। ऐसा करने पर, आप कम से कम त्रुटि पेश करना चाहते हैं। इसलिए, आपके द्वारा दिए गए डेटा के लिए, आवंटन बी को गोलाकार किया जाना चाहिए क्योंकि 42 उच्चतम आंशिक मान है जो गोल किया गया था। क्या यह सही लग रहा है? –
ओह, और मुझे एक और चीज़ में टॉस करने दें: चूंकि ये वित्तीय मान दो दशमलव स्थानों पर रखे जाते हैं, इसलिए आपको 'दशमलव' का उपयोग करना चाहिए, न कि 'डबल'। –
सुपरकैट का जवाब सवाल उठाता है कि हम कम से कम त्रुटि को कैसे परिभाषित करते हैं। क्या हमारा मतलब कम से कम पूर्ण त्रुटि या कम से कम सापेक्ष त्रुटि है? –