में NSDecimalNumber का उपयोग करते हुए मैं एक गणना है कि कुछ इस तरह चला जाता है की है। हालांकि, उद्देश्य-सी पर थोड़ी अधिक देखने के बाद, यह कई बार उल्लेख किया गया था कि मुद्रा की गणना करते समय आपको NSDecimalNumber का उपयोग करना चाहिए। मुद्दा रहा है कि मैं तुलना और बातों में इस 'मूल्य' चर का उपयोग, उदाहरण के लिए है:उद्देश्य-सी
if (deposit/price) < 0.2
return price*0.05;
का उपयोग NSDecimalNumber इस एक बहुत अधिक कठिन बना देता है। जहां तक मुझे पता है कि मुझे किसी भी जादू संख्या (इस मामले में 0.2 और 0.05) को NSDecimalNumber में परिवर्तित करना चाहिए, इसलिए मैं उनकी तुलना कर सकता हूं और NSDecimalMultiply जैसे कार्यों का उपयोग कर सकता हूं।
इसके अलावा, अगर मैं एक समारोह है कि कुछ की तरह है:
return [minRandomPercentage decimalNumberByAdding:[[maxRandomPercentage decimalNumberBySubtracting: minRandomPercentage] decimalNumberByMultiplyingBy:random]]
इस गंभीरता से कैसे उद्देश्य-सी है:
return (minRandomPercentage + ((maxRandomPercentage - minRandomPercentage) * (randomNumber)
यह नेस्टेड समारोह की यह हास्यास्पद स्ट्रिंग कॉल की तरह होता जा रहा समाप्त होता है decimals के साथ सौदों? क्या कोई मुझे इस बारे में कोई संकेत दे सकता है कि इसे बहुत कम कठिन कैसे बनाया जाए? मैं नेस्टेड फंक्शन कॉल के साथ रह सकता हूं अगर मैं परिणाम के साथ तुलना कर सकता हूं और मेरे पास हर जादू संख्या कास्टिंग नहीं करना है।
यदि आप मुद्रा से निपट रहे हैं, तो आप आदिम पूर्णांक डेटाटाइप के संदर्भ में क्यों काम नहीं कर रहे हैं? यदि आपके मूल्य "डॉलर" के बजाय "सेंट" में व्यक्त किए जाते हैं (अपना स्वयं का i18n विकल्प), तो आपको fractional मात्राओं के बारे में चिंता करने की आवश्यकता नहीं है। –