গোলাকার দ্বিগুণ মান 2 দশমিক স্থানে


87

22.368511 হিসাবে আমার ডাবল মান রয়েছে আমি এটি 2 টি দশমিক স্থানে নিয়ে যেতে চাই। অর্থাৎ এটি 22.37 ফিরে আসবে

আমি এটা কিভাবে করবো?


4
আপনি কি 2 মান দশমিক জায়গা দিয়ে এই মানটি ফিরিয়ে দিতে চান? বা 2 দশমিক স্থান সহ মানটি প্রদর্শন করবেন?
থ্যালাস

আসলে আমার এটি প্রদর্শন করা দরকার
testndtv

উত্তর:


189

বেশিরভাগ ভাষায় যেমন ফর্ম্যাটটি হয়

%.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

13
আইওএস-এ, আমাকে ব্যবহার করতে হয়েছিল setPositiveFormat:, কারণ setFormat:পদ্ধতিটি বিদ্যমান ছিল না (কেবল ম্যাকের জন্য সংজ্ঞায়িত), তবে এখনও - দুর্দান্ত উত্তর, আমাকে পরীক্ষার কয়েক ঘন্টা বাঁচিয়েছে, তাই +1 এবং আপনাকে ধন্যবাদ :)
ফুর্লোস্ক

4
একটি সমস্যা: এটি গোলাকার নয়, তবে কেটে গেছে। সম্ভবত, আপনার কোড সহ প্রশ্নকারী দ্বারা প্রদত্ত ইনপুট মানটি ব্যবহার করে, ফলাফলটি তিনি প্রত্যাশা করেছিলেন (22.37) আরথার (22.36)।
জেমস বুশ

তবে আপনি এটি আর গণনার জন্য ব্যবহার করতে পারবেন না
প্যারাগ বাফনা

70

আপনি নীচের কোডটি দুটি দশমিক স্থানে ফর্ম্যাট করতে ব্যবহার করতে পারেন

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)

4
দ্রুত পদক্ষেপে 4: চলুন স্ট্রিং = স্ট্রিং (বর্ণনা: formatter.string (থেকে: 12.2345)!)
ইয়াহিয়াত

এটি কি সম্ভব যে ফলাফলের 22.36 মানের মধ্যে 6 থেকে 7 না বাড়বে?
শাহবাজ আকরাম

@ শাহবাজআকরাম RoundingMode ভাল যেমন, NSNumberFormatterRoundDown, NSNumberFormatterRoundHalfDown ইত্যাদি অনেক অন্যান্য বিকল্প রয়েছে
আব্দুর রহমান মুবিন আলী

30
 value = (round(value*100)) / 100.0;

4
আমি বিশ্বাস করি যে এটি সবচেয়ে সঠিক উত্তর - তিনি কেবল এটি গোল করতে বলেছেন - এটিকে শেষে স্ট্রিংয়ে রূপান্তর করতে নয় (বা পরে ডাবল রূপান্তরটি দ্বিগুণ করে)।
মার্টিন কোভাচেভ



11

আপনি এনএসডিসিমাল রাউন্ড ফাংশনটি ব্যবহার করতে পারেন


এটি কার্যকর যদি আপনার মানটি বৃত্তাকার হয়ে যায়, (যা আমি প্রথমে প্রশ্নও ছিল বলে মনে করি) তবে মন্তব্যগুলি দেখায় যে হ্যামথার কেবলমাত্র ডিসপ্লে নিয়ন্ত্রণ করতে পারে ...
জেসন রজার্স

6

আপনার ডাবল থেকে দশমিকগুলি সরাতে এই আউটপুটটি একবার দেখুন

ওবজ সি

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

4

আমি জেসনের উত্তরটি দিয়ে যাচ্ছিলাম তবে আমি লক্ষ্য করেছি যে আমার Xcode এর সংস্করণে (৪.৩.৩) আমি এটি করতে পারিনি। তাই কিছুটা গবেষণার পরে আমি দেখতে পেলাম যে তারা সম্প্রতি ক্লাসের পদ্ধতিগুলি পরিবর্তন করেছে এবং সমস্ত পুরানো সরিয়ে দিয়েছে। সুতরাং আমি এখানে এটি করতে হয়েছিল কিভাবে:

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];

[fmt setMaximumFractionDigits:2];
NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);

2

NSNumber * aNumber = [এনএস নাম্বার সংখ্যাবিহীন ডাবল: সংখ্যা] ব্যবহার করুন; NSNumber এর পরিবর্তে * aNumber = [এনএস নাম্বার সংখ্যাবিহীন ফ্লোট: সংখ্যা];

+(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;
}

2

সুইফটের জন্য একটি সহজ সমাধান রয়েছে যদি আপনি হয় ফাউন্ডেশন আমদানি করতে না পারেন, বৃত্তাকার () ব্যবহার করতে পারেন এবং / অথবা কোনও স্ট্রিং না চান (সাধারণত আপনি যখন খেলার মাঠে থাকবেন তখন):

var number = 31.726354765
var intNumber = Int(number * 1000.0)
var roundedNumber = Double(intNumber) / 1000.0

ফলাফল: 31.726



0

আপনি এটি করতে পারেন:

NSNumberFormatter* f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setFormat:@0.00"];

// test
NSNumber* a = @12;
NSString* s = [f stringFromNumber:a];
NSLog(@"%@", s);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.