2011-06-10 9 views
7

हम आईफोन में दशमलव संख्याओं को 2 अंकों से कैसे बंद कर सकते हैं?आईफोन में दशमलव संख्या को 2 अंकों से कैसे गोल करें?

उदाहरण के लिए,

  1. 5345 -> 53

  2. 570 -> 57

  3. 89523 -> 90

मैं का उपयोग करने की कोशिश की इसके लिए nsformatter और यहां कोड है जिसका इस्तेमाल मैंने किया था,

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[formatter setMaximumIntegerDigits:2]; 
[formatter setRoundingMode: NSNumberFormatterRoundUp]; 

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithInt:570]]; 

    [formatter release]; 
    NSLog(@"%@",numberstring); 

मैं अलग-अलग विकल्पों में राउंडिंग मोड को बदलने के बाद भी 70 के रूप में मूल्य प्राप्त करना जारी रखता हूं। कृपया मुझे

धन्यवाद, विनोद के साथ मेरी सहायता करें।

उत्तर

4

आप दशमलव अंक ऊपर दौर के लिए देख रहे हैं के बाद से, आपसे वास्तव में यह एक नाव उपलब्ध कराने और 2. करने के लिए अधिक से अधिक दशमलव अंक आप शायद इस लिए देख रहे हैं स्थापित करना चाहिए,

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[formatter setMaximumFractionDigits:2]; 
[formatter setRoundingMode: NSNumberFormatterRoundHalfUp]; 

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:570.57018]]; 

[formatter release]; 
NSLog(@"%@",numberString); 
+0

आपके सुझाव के लिए धन्यवाद – Atom

11

फ़ॉर्मटर के बजाय इस सरल कोड का उपयोग कर सकते हैं;

myFloat = roundf(100 * myFloat)/100.0; 

मुझे उम्मीद है कि यह मदद करता है।

या आप इस

float roundedValue = round(2.0f * number)/2.0f; 
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setMaximumFractionDigits:2]; 
[formatter setRoundingMode: NSNumberFormatterRoundDown]; 
NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]]; 
[formatter release]; 
0

दीपक के जवाब का उपयोग कर सकते शायद वास्तव में आपको क्या चाहिए होता है, लेकिन मैं सिर्फ विकल्पों की खातिर एक और विकल्प उपलब्ध कराने के कर रहा हूँ।

NSString *numberString = [NSString stringWithFormat:@"%.2f", [someNumber floatValue]]; 
// this converts the NSNumber to a float, then formats the float in a string; 
NSNumber *formattedNumber = [NSNumber numberWithFloat:[numberString floatValue]]; 
// this extracts the float from the string and puts it back as an NSNumber 
0

लगता है कहीं कोई पूर्ण संख्या

दौर के लिए कोई सीधा तरीका है: मैं तुम्हें NSNumber मूल्यों का उपयोग कर रहे संभालने रही है, इसलिए someNumber उदाहरण में उस प्रकार के हो जाएगा लेकिन आप अभी भी कर सकते हैं। आपको पूरे नंबर को एक आंशिक संख्या में बदलने के लिए कुछ अतिरिक्त कार्य करना होगा और "0" को हटाने के लिए कुछ चाल फ्लोट वैल्यू से।

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[formatter setRoundingMode:NSNumberFormatterRoundHalfUp]; 
[formatter setMaximumFractionDigits:2]; 

int n = 570; 
float f = [[NSString stringWithFormat:@"0.%d", n] floatValue]; 
NSNumber *number = [NSNumber numberWithFloat:f]; 
NSString *str = [formatter stringFromNumber:number]; 
[formatter setPositivePrefix:@"0."]; 
number = [formatter numberFromString:str]; 
[formatter release]; 
+0

आपके इनपुट के लिए धन्यवाद – Atom

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