2010-08-02 7 views
5

मैं शून्य दशमलव रिक्त स्थान के लिए एक NSNumber दौर कैसे करूँ, निम्न पंक्ति में यह दशमलव रिक्त स्थान रखने के लिए लगता है: आप केवल एक पूर्णांक क्यों की जरूरत हैमैं एक NSNumber दौर है कैसे शून्य करने के लिए दशमलव रिक्त स्थान

NSNumber holidayNightCount = [NSNumber numberWithDouble:sHolidayDuration.value]; 
+0

डुप्लिकेट http://stackoverflow.com/questions/576110/nstimeinterval-to-readable-nsnumber –

उत्तर

2

न सिर्फ एक पूर्णांक

int holidayNightCount = (int)sHolidayDuration.value; 

का उपयोग परिभाषा के अनुसार किसी पूर्णांक नहीं दशमलव स्थानों

आप NSNumber का उपयोग करने की जरूरत है है, तो आप सिर्फ int और फिर अपने NSNumber बनाने के लिए पूर्णांक उपयोग करने के लिए डबल डाली सकता है ।

int myInt = (int)sHolidayDuration.value; 
NSNumber holidayNightCount = [NSNumber numberWithInt:myInt]; 
+1

मंजिल अधिक होने की संभावना वांछित व्यवहार –

+0

@JoshuaWeinberg तकनीकी तौर पर इस काटना चाहिए, जो मंजिल के रूप में ही है। – csga5000

+1

नकारात्मक और निषेध नकारात्मक के लिए अलग हैं। –

14

आमतौर पर int truncates को कास्टिंग। उदाहरण के लिए, 3.4 3 हो जाता है (वांछित है), लेकिन 3.9 3 भी बन जाता है। यदि ऐसा होता है, कास्टिंग

int myInt = (int)(sHolidayDuration.value + 0.5); 
+1

राउंड अप के आसपास होने का यह एक मजेदार तरीका है। मैंने कभी ऐसा करने का विचार नहीं किया था कि आईओएस में गोल करने वाले टूल में बनाया गया है। मुझे यह जवाब सोचने का एक बहुत अच्छा तरीका पसंद है। – Rob

+0

यह वास्तव में नकारात्मक संख्याओं के साथ काम नहीं करेगा हालांकि – oztune

12

से पहले 0.5 जोड़ने के यहाँ एक घना दृष्टिकोण का एक सा

float test = 1.9; 
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp]; 
[formatter setMaximumFractionDigits:0]; 
NSLog(@"%@",[formatter stringFromNumber:[NSNumber numberWithFloat:test]]); 
[formatter release]; 
+0

यह वही है जो मैं ढूंढ रहा था। मेरे मामले में मैं एक दशमलव स्थान या दो चाहता था, और उस सम्मान में यह विधि अधिक शक्तिशाली है। – csga5000

1

आप निम्न कार्य कर सकते हैं: पूर्णांक roundedRating = (int) दौर (rating.floatValue);

0

मंजिल वर्ष सी समारोह मंजिल() और फिर आप एक NSInteger जो अधिक उपयुक्त है बना सकते हैं का उपयोग कर संख्या, देखें: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/floor.3.html ....

NSInteger holidayNightCount = [NSNumber numberWithInteger:floor(sHolidayDuration.value)].integerValue; 

विषय यहाँ पर अधिक जानकारी: http://eureka.ykyuen.info/2010/07/19/objective-c-rounding-float-numbers/

या आप गोल संख्याओं के लिए NSDecimalNumber सुविधाओं का उपयोग कर सकते हैं।

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