জাভা রাউন্ড আপ যেকোন সংখ্যা


146

আমি একটি সাধারণ প্রশ্ন সম্পর্কে উত্তরটি খুঁজছি বলে আমি খুঁজে পাচ্ছি না: আমি কীভাবে কোনও সংখ্যার নিকটতমকে গোল করব int?

উদাহরণস্বরূপ, যখনই সংখ্যাটি 0.2, 0.7, 0.2222, 0.4324, 0.99999 হয় ফলাফলটি 1 হতে চাই।

এখনও পর্যন্ত

int b = (int) Math.ceil(a / 100);

যদিও কাজটি করছে বলে মনে হচ্ছে না।


আপনি কেন আপনার নমুনা কোডটিতে 100 দ্বারা ভাগ করছেন?
জন স্কিটি

14
আমি বাজি ধরলাম আপনার aপূর্ণসংখ্যার ধরণ আছে।
নিকিতা রাইবাক

1
হ্যাঁ, ঠিক আছে, একটি আন্ত ... এটি নির্দেশ করার জন্য ধন্যবাদ poin 100.0 আমার জন্য এটি বাছাই।
স্টেভানিকাস

1
আমি অনুমান করছি যে তিনি কী চান / 100 টি বৃত্তাকার, তবে হ্যাঁ, প্রশ্নটি কিছু স্পষ্টতা ব্যবহার করতে পারে।
জে

1
দ্রষ্টব্য: এই প্রশ্নে আরও ভাল উত্তর সরবরাহ করা হয়।
martijnn2008

উত্তর:


289

Math.ceil()কল করার সঠিক ফাংশন। আমি অনুমান করছি aএটি একটি int, যা a / 100পূর্ণসংখ্যার পাটিগণিত সম্পাদন করে। Math.ceil(a / 100.0)পরিবর্তে চেষ্টা করুন।

int a = 142;
System.out.println(a / 100);
System.out.println(Math.ceil(a / 100));
System.out.println(a / 100.0);
System.out.println(Math.ceil(a / 100.0));
System.out.println((int) Math.ceil(a / 100.0));

আউটপুট:

1
1.0
1.42
2.0
2

Http://ideone.com/yhT0l দেখুন


3
এটি কেবলমাত্র "এ" দ্বিগুণ হলে
এল.গ্রিলো

a "ক" এর একটি ডাবল বা ডাবল doubleালাই হওয়া দরকার
25-15

1
aintএই উদাহরণে এটি একটি , এবং এটি প্রস্তাবিত হিসাবে কাজ করে। যখন করছেন int / floatএর ফলে হয় floatযেমন আউটপুটে প্রদর্শিত। লিঙ্কটি চেষ্টা করে দেখুন।
ড্যান্টিস্টন

16

আপনি কেন ১০০ দিয়ে ভাগ করছেন তা আমি জানি না তবে এখানে আমার ধারণা int a;

int b = (int) Math.ceil( ((double)a) / 100);

অথবা

int b = (int) Math.ceil( a / 100.0);

11
int RoundedUp = (int) Math.ceil(RandomReal);

এটি নিখুঁত কাজ বলে মনে হয়েছিল। প্রতিটি সময় কাজ।


2

10 বছর পরে কিন্তু এখনও এই সমস্যাটি আমাকে ধরেছিল।

সুতরাং এটি আমার কাছে খুব দেরি করে তাদের উত্তর।

এটা কাজ করে না

int b = (int) Math.ceil(a / 100);

ফলাফলটি a / 100পূর্ণসংখ্যার হয়ে দাঁড়ায় এবং এটি গোলাকার হয় যাতে ম্যাথ.সিল এটি সম্পর্কে কিছুই করতে পারে না।

এটির সাথে আপনাকে বৃত্তাকার অপারেশন এড়াতে হবে

int b = (int) Math.ceil((float) a / 100);

এখন এটা কাজ করছে.


0

এটি করার সহজতম উপায় হ'ল: আপনি একটি ফ্লোট বা ডাবল পাবেন এবং এটিকে নিকটতম রাউন্ডে রূপান্তর করতে চান তবে কেবল System.out.println((int)Math.ceil(yourfloat)); এটি পুরোপুরি কাজ করবে


-3

একটি দ্বিগুণ হিসাবে ধরে নিচ্ছি এবং আমাদের দশমিক স্থান ছাড়াই গোলাকার সংখ্যা দরকার। ম্যাথ.াউন্ড () ফাংশনটি ব্যবহার করুন।
এটি আমার সমাধান হিসাবে যায়।

double a = 0.99999;
int rounded_a = (int)Math.round(a);
System.out.println("a:"+rounded_a );

Output : 
a:1

1
এটি একটি ভুল উত্তর, যেমন এখানে বলা হয়েছে ইউপি ঘুরতে যদি একটি = ০.২ ফলাফল হয় 0
মোহাম্মদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.