मेरे पास 22.368511 के रूप में दोहरा मूल्य है मैं इसे 2 दशमलव स्थानों पर गोल करना चाहता हूं। यानी इसे 22.37 लौटाना चाहिए
मैं उसे कैसे कर सकता हूँ?
मेरे पास 22.368511 के रूप में दोहरा मूल्य है मैं इसे 2 दशमलव स्थानों पर गोल करना चाहता हूं। यानी इसे 22.37 लौटाना चाहिए
मैं उसे कैसे कर सकता हूँ?
जवाबों:
जैसा कि अधिकांश भाषाओं में प्रारूप होता है
%.2f
आप यहां और उदाहरण देख सकते हैं
संपादित करें : 25.00 के मामलों में बिंदु के प्रदर्शन के बारे में चिंतित होने पर मुझे यह भी मिला
{
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setPositiveFormat:@"0.##"];
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.3]]);
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.0]]);
}
2010-08-22 15:04:10.614 a.out[6954:903] 25.34
2010-08-22 15:04:10.616 a.out[6954:903] 25.3
2010-08-22 15:04:10.617 a.out[6954:903] 25
setPositiveFormat:
, क्योंकि setFormat:
विधि मौजूद नहीं थी (केवल मैक के लिए परिभाषित), लेकिन फिर भी - महान जवाब, मुझे प्रयोग करने के घंटे बचाए, इसलिए +1 और आपके लिए बड़ा धन्यवाद :)
आप इसे दो दशमलव स्थानों पर प्रारूपित करने के लिए नीचे दिए गए कोड का उपयोग कर सकते हैं
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:22.368511]];
NSLog(@"Result...%@",numberString);//Result 22.37
स्विफ्ट 4:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.roundingMode = .up
let str = String(describing: formatter.string(from: 12.2345)!)
print(str)
value = (round(value*100)) / 100.0;
[label setText:@"Value: %.2f", myNumber];
आप NSDecimalRound फ़ंक्शन का उपयोग कर सकते हैं
अपने दोहरे से दशमलव को निकालने के लिए, इस आउटपुट पर एक नज़र डालें
ओबज सी
double hellodouble = 10.025;
NSLog(@"Your value with 2 decimals: %.2f", hellodouble);
NSLog(@"Your value with no decimals: %.0f", hellodouble);
उत्पादन होगा:
10.02
10
स्विफ्ट 2.1 और एक्सकोड 7.2.1
let hellodouble:Double = 3.14159265358979
print(String(format:"Your value with 2 decimals: %.2f", hellodouble))
print(String(format:"Your value with no decimals: %.0f", hellodouble))
उत्पादन होगा:
3.14
3
मैं जेसन के जवाब के साथ जाने वाला था लेकिन मैंने देखा कि मेरे Xcode (4.3.3) संस्करण में मैं ऐसा नहीं कर सका। इसलिए थोड़ा शोध के बाद मैंने पाया कि उन्होंने हाल ही में कक्षा के तरीकों को बदल दिया है और सभी पुराने को हटा दिया है। तो यहाँ है कि मुझे यह कैसे करना था:
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setMaximumFractionDigits:2];
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);
NSNumber का उपयोग करें * aNumber = [NSNumber numberWithDouble: number]; NSNumber के बजाय * aNumber = [NSNumber numberWithFloat: संख्या];
+(NSString *)roundToNearestValue:(double)number
{
NSNumber *aNumber = [NSNumber numberWithDouble:number];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setUsesGroupingSeparator:NO];
[numberFormatter setMaximumFractionDigits:2];
[numberFormatter setMinimumFractionDigits:0];
NSString *string = [numberFormatter stringFromNumber:aNumber];
return string;
}
स्विफ्ट के लिए एक सरल उपाय है यदि आप या तो फाउंडेशन आयात नहीं कर सकते हैं, राउंड का उपयोग करें () और / या एक स्ट्रिंग नहीं चाहते हैं (आमतौर पर जब आप खेल के मैदान में होते हैं तो):
var number = 31.726354765
var intNumber = Int(number * 1000.0)
var roundedNumber = Double(intNumber) / 1000.0
परिणाम: 31.726
मैं Umberto Raimondi प्रकार डबल द्वारा पोस्ट किए गए समाधान का उपयोग करता हूं :
extension Double {
func roundTo(places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
आप ऐसा कर सकते हैं:
NSNumberFormatter* f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setFormat:@0.00"];
// test
NSNumber* a = @12;
NSString* s = [f stringFromNumber:a];
NSLog(@"%@", s);