2010-08-13 5 views
10

में गोल युगल मेरे पास 34.123456789 जैसे प्रारूप में डबल नंबर है। मैं इसे 34.123 में कैसे बदल सकता हूं?उद्देश्य-सी

मुझे दशमलव बिंदु के बाद 3 अंक चाहिए।

उत्तर

21

आप इसे [NSString stringWithFormat:@"%.3f",d] के साथ 3 दशमलव स्थानों पर प्रिंट कर सकते हैं।

आप लगभग दौर यह round(d*1000)/1000 साथ, लेकिन निश्चित रूप से इस के बाद से 1000 के 2.

+1

पहले एक मेरे लिए काम किया है ... :( लेकिन शायद सिर्फ बेवकूफ है ...: डी – cV2

7

आप उपयोग कर सकते हैं:

#include <math.h> 
: 
dbl = round (dbl * 1000.0)/1000.0; 

बस ध्यान रखें कि तैरता और युगल के रूप में करीब एक सन्निकटन के रूप में अंतर्निहित प्रकार प्रदान कर सकते हैं कर रहे हैं में रहते हैं। यह सटीक नहीं हो सकता है।

6

अनुमोदित समाधान एक छोटे से लिखने में गलती है एक शक्ति नहीं है सही होने की गारंटी नहीं है सकते हैं। इसमें "%" गुम है।

यहां टाइपो के बिना समाधान और थोड़ा अतिरिक्त कोड है।

double d = 1.23456; 
NSString* myString = [NSString stringWithFormat:@"%.3f",d]; 

myString "1.234" होगा।

+5

आप गलत उत्तरों को संपादित कर सकते हैं ... –

+2

और वोट नहीं मिल रहे हैं? –

0

आप

34.123456789 -> 34.123 
34.000000000 -> 34 not 34.000 

बनाना चाहते हैं आप उपयोग कर सकते हैं NSNumberFormatter

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init]; 
[fmt setMaximumFractionDigits:3]; // 3 is the number of digits 

NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.123456789]]); // print 34.123 
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:34.000000000]]); // print 34 

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

  • कोई संबंधित समस्या नहीं^_^