software - জাভা java runtime environment




জাভা মধ্যে 2 দশমিক স্থান আপ বৃত্তাকার? (8)

আপনার কোড ফিরে যান, এবং 100 দ্বারা 100 প্রতিস্থাপন এবং এটি কাজ করে আমাকে জানাতে। তবে, আপনি যদি আনুষ্ঠানিক হতে চান তবে এটি চেষ্টা করুন:

import java.text.DecimalFormat;
DecimalFormat df=new DecimalFormat("0.00");
String formate = df.format(value); 
double finalValue = (Double)df.parse(formate) ;

এই প্রশ্নটি ইতিমধ্যে একটি উত্তর আছে:

আমি অনেক স্ট্যাকওভারফ্লো প্রশ্ন পড়েছি কিন্তু কেউ আমার জন্য কাজ করছে বলে মনে হচ্ছে না। আমি math.round() বন্ধ বৃত্তাকার ব্যবহার করছি। এই কোডটি হল:

class round{
    public static void main(String args[]){

    double a = 123.13698;
    double roundOff = Math.round(a*100)/100;

    System.out.println(roundOff);
}
}

আউটপুট আমি 123.14 : 123 কিন্তু আমি এটি 123.14 হতে 123.14 । আমি পড়তে পারি যে *100/100 যোগ করা সাহায্য করবে কিন্তু আপনি দেখতে পারেন যে আমি এটি কাজ করার জন্য পরিচালনা করে নি।

ইনপুট এবং আউটপুট উভয় জন্য এটি একেবারে অপরিহার্য।

আপনি উপরের কোড 4 লাইন পরিবর্তন এবং পোস্ট যদি এটি মহান মহান সাহায্য হবে।


আপনি পূর্ণসংখ্যা গাণিতিক দ্বারা আঘাত করা হয় বলে মনে হচ্ছে: কিছু ভাষায় (int) / (int) সবসময় পূর্ণসংখ্যা গাণিতিক হিসাবে মূল্যায়ন করা হবে। ভাসমান-বিন্দু গাণিতিক বল প্রয়োগ করার জন্য, কমপক্ষে একটি অপারেশন অ-পূর্ণসংখ্যা নিশ্চিত করুন:

double roundOff = Math.round(a*100)/100.f;

আমি শুধু আপনার কোড পরিবর্তন। এটা আমার সিস্টেমে সূক্ষ্ম কাজ করে। এই সাহায্য করে দেখুন

class round{
    public static void main(String args[]){

    double a = 123.13698;
    double roundOff = Math.round(a*100)/100.00;

    System.out.println(roundOff);
}
}

চেষ্টা করুন:

class round{
public static void main(String args[]){

double a = 123.13698;
double roundOff = Math.round(a*100)/100;
String.format("%.3f", roundOff); //%.3f defines decimal precision you want
System.out.println(roundOff);   }}

এটি দীর্ঘ এক কিন্তু একটি সম্পূর্ণ প্রমাণ সমাধান, কখনও ব্যর্থ হয়

শুধু আপনার ফাংশনটিকে দ্বিগুণ হিসাবে পাস করুন, এটি আপনাকে দশমিক মানকে 5 পর্যন্ত নিকটতম মানের দিকে ঘোরাবে;

4.25, আউটপুট 4.25

4.20, আউটপুট 4.20

4.24, আউটপুট 4.20

4.26, আউটপুট 4.30

যদি আপনি 2 দশমিক স্থান পর্যন্ত রাউন্ড করতে চান তবে ব্যবহার করুন

DecimalFormat df = new DecimalFormat("#.##");
roundToMultipleOfFive(Double.valueOf(df.format(number)));

যদি 3 টি স্থানে, নতুন ডিকিমালফরম্যাট ("#। ###")

যদি n স্থান পর্যন্ত, নতুন ডিকিমালফরম্যাট ("#। nTimes # ")

 public double roundToMultipleOfFive(double x)
            {

                x=input.nextDouble();
                String str=String.valueOf(x);
                int pos=0;
                for(int i=0;i<str.length();i++)
                {
                    if(str.charAt(i)=='.')
                    {
                        pos=i;
                        break;
                    }
                }

                int after=Integer.parseInt(str.substring(pos+1,str.length()));
                int Q=after/5;
                int R =after%5;

                if((Q%2)==0)
                {
                    after=after-R;
                }
                else
                {
                   if(5-R==5)
                   {
                     after=after;
                   }
                   else after=after+(5-R);
                }

                       return Double.parseDouble(str.substring(0,pos+1).concat(String.valueOf(after))));

            }

double roundOff = Math.round(a*100)/100;

হতে হবে

double roundOff = Math.round(a*100)/100D;

100 থেকে 'D' যোগ করা এটি দ্বৈত আক্ষরিক করে তোলে, ফলে উত্পাদিত ফলাফলটি স্পষ্টতা থাকবে


     double d = 2.34568;
     DecimalFormat f = new DecimalFormat("##.00");
     System.out.println(f.format(d));

BigDecimal a = new BigDecimal("123.13698");
BigDecimal roundOff = a.setScale(2, BigDecimal.ROUND_HALF_EVEN);
System.out.println(roundOff);





java