2009-05-06 14 views
19

मैं एक आईफोन ऐप पर काम कर रहा हूं और पैसा ($) रकम का प्रतिनिधित्व करना चाहता हूं। मैं फ्लोट का उपयोग नहीं कर सकता क्योंकि वे कुछ मात्रा में गोल त्रुटियों को पेश करते हैं। मैं क्या उपयोग कर सकता हूं?उद्देश्य-सी/आईओएस में पैसे का प्रतिनिधित्व कैसे करें?

मैं अपनी खुद की मनी क्लास को परिभाषित करने और आंतरिक रूप से एनएसआईएनटेगर के रूप में डॉलर और पैनी स्टोर करने की सोच रहा हूं।

@interface Money : NSObject { 
    //$10.25 is stored as dollas=10 and pennies=25 
    NSInteger dollars; 
    NSInteger pennies; 
} 

एक अन्य संभावित प्रतिनिधित्व (जोड़ने और गुणा करने के लिए आसान) पैसे के रूप में एक NSInteger उपयोग करने के लिए किया जाएगा।

@interface Money : NSObject { 
    //$10.25 is stored as pennies=1025 
    NSInteger pennies; 
} 

आपके विचार क्या हैं? क्या मैं एक "बिगडिसीमल" प्रकार का उपयोग कर सकता हूं?

उत्तर

27

NSDecimalNumber का उपयोग करें। निश्चित रूप से यह ऊपर की ओर है, लेकिन जब तक आप यह साबित नहीं कर सकते कि यह एक समस्या है, तो आपको वह सटीकता पसंद आएगी जो यह आपको देता है।

http://www.cimgf.com/2008/04/23/cocoa-tutorial-dont-be-lazy-with-nsdecimalnumber-like-me/ http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDecimalNumber_Class/Reference/Reference.html

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

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