2010-10-30 13 views
32

मुझे कुछ वास्तव में गलत रूप से गलत करना होगा, लेकिन मैं इसे नहीं देख सकता।उद्देश्य-सी, मैं एक डबल से int में कैसे परिवर्तित करूं?

alt text

+10

मैं अब लगता है कि एक अच्छा विचार आप सी जानने के लिए है: डी – tadejsv

उत्तर

81

एक डबल एक सी प्रकार, नहीं एक ऑब्जेक्टिव-सी वस्तु है।

double myDouble = 3.2; 
int myInt = (int)myDouble; 
+0

मेरा मानना ​​है कि NSDouble उद्देश्य सी समकक्ष है, कृपया मुझे सही अगर मैं मैं गलत हूं। –

+3

@ जो डी: केवल एनएसआईएनटेगर (जो 32/64 बिट के आधार पर int * या * लंबे समय तक टाइप किया गया है), लेकिन NSNumber है, जो किसी ऑब्जेक्ट में सी डेटा प्रकार को लपेटता है। –

4

बस ऊपर उल्लेख परिवर्तित काफी अच्छा है, हालांकि आपको लगता है कि पहले) मंजिल() या प्लस्तर लगाना (उपयोग करने के लिए काम करता है चाहते हो सकता है है: इसलिए आप सी डाले का उपयोग करें।

+1

मैंने यह विशेष रूप से भुगतान के लिए सटीकता की आवश्यकता वाले प्रश्न के संदर्भ में महत्वपूर्ण पाया। मुझे पूर्णांक रूपांतरण के बाद 230 9 में कनवर्ट करने जैसी सरल संख्याएं मिलीं। –

+3

मुझे विश्वास है कि कीमतों के प्रतिनिधित्व के लिए फ़्लोटिंग पॉइंट का उपयोग करना बुरा अभ्यास है। सही तरीका पूर्णांक का उपयोग करना है (सेंट में, इसलिए $ 2 मूल्य 200 है) और आउटपुट पर उन्हें "2.00" में परिवर्तित करें। इसके अलावा कोको NSDecimalNumber क्लास प्रदान करता है जिसका उपयोग आईओएस द्वारा मूल्य प्रतिनिधित्व के लिए किया जाता है। – Vladimir

1

intValueNSNumber उदाहरण के लिए एक विधि है। int, डबल, और फ्लोट जैसे स्केल प्रकार के लिए, वे कक्षा प्रकार नहीं हैं। तो, उनके पास कोई तरीका नहीं है। सी # जैसी कुछ भाषाएं int को लपेट सकती हैं, या ऑब्जेक्ट के रूप में दोगुनी हो सकती हैं, और उन्हें उप-दिनचर्या द्वारा एक-दूसरे में स्थानांतरित किया जा सकता है।

-6
double myDouble = 3.2; 

int myInt = @(myDouble).intValue; 

कोड का नमूना मैं वास्तव में उपयोग करें:

NSNumber * percentLike1 = @(@(self.percentLike.doubleValue*100).integerValue); 
+3

-1: यह कनवर्ट करने का एक बहुत चौराहे और अक्षम तरीका है। अनिवार्य रूप से आप एक आदिम से एक वस्तु बना रहे हैं बस एक और आदिम मूल्य पकड़ने के लिए। यदि आपके पास लूप में था, तो इसका एक उल्लेखनीय प्रभाव होगा। – FreeAsInBeer

+0

जटिलता स्थिर है। यह सब मुझे परवाह है। नहीं, यह ध्यान देने योग्य नहीं है। –

+2

'(int) myDouble' से आपका कोड कम जटिल, या इससे भी अधिक पठनीय कैसे है? – FreeAsInBeer

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