উদাহরণ সহ MathContext এর ব্যবহার

MathContext Class - জাভা ম্যাথ প্যাকেজ (Java.math Package) - Java Technologies

322

MathContext ক্লাসটি java.math প্যাকেজে অন্তর্ভুক্ত এবং এটি BigDecimal এর গণনা নিয়ে কাজ করার সময় দশমিক সঠিকতা ও পরিমাণ নির্ধারণ করতে ব্যবহৃত হয়। এটি নির্দিষ্ট পরিমাণ সঠিকতা (precision) এবং গোলকৃত (rounding) পদ্ধতি সেট করার জন্য ব্যবহৃত হয়।

MathContext ক্লাসটি ব্যবহার করে আপনি গণনা করার সময় কীভাবে দশমিক সংখ্যাগুলোর সঠিকতা বজায় রাখবেন এবং কোন ধরনের গোলকরণ (rounding) পদ্ধতি ব্যবহার করবেন তা নিয়ন্ত্রণ করতে পারবেন।

MathContext এর বৈশিষ্ট্য:

  1. Precision: এটি গণনায় দশমিকের সঠিকতা নির্ধারণ করে, অর্থাৎ কতটি ডিজিট পর্যন্ত গণনা করা হবে।
  2. Rounding Mode: এটি দশমিকের গণনায় গোলকরণ কিভাবে হবে তা নির্ধারণ করে, যেমন HALF_UP, HALF_DOWN, CEILING, ইত্যাদি।

MathContext এর কনস্ট্রাক্টর:

  • MathContext(int precision): এটি একটি নির্দিষ্ট সঠিকতা (precision) সেট করে, ডিফল্ট গোলকরণ পদ্ধতি হল HALF_UP
  • MathContext(int precision, RoundingMode roundingMode): এটি একটি নির্দিষ্ট সঠিকতা এবং গোলকরণ পদ্ধতি সেট করতে ব্যবহৃত হয়।

MathContext এর উদাহরণ:

1. Basic MathContext Usage with Precision

এই উদাহরণে আমরা BigDecimal এর গণনা করতে MathContext ব্যবহার করেছি যেখানে নির্দিষ্ট সঠিকতা (precision) সেট করা হয়েছে।

import java.math.BigDecimal;
import java.math.MathContext;

public class MathContextExample {
    public static void main(String[] args) {
        // Set precision to 5
        MathContext mc = new MathContext(5);
        
        // Create BigDecimal numbers
        BigDecimal num1 = new BigDecimal("123.456789");
        BigDecimal num2 = new BigDecimal("987.654321");
        
        // Perform division with MathContext
        BigDecimal result = num1.divide(num2, mc);
        
        // Print the result
        System.out.println("Result with precision 5: " + result);
    }
}

আউটপুট:

Result with precision 5: 0.124999

ব্যাখ্যা:

  • MathContext(5) দ্বারা সঠিকতা 5 সেট করা হয়েছে, এর মানে হল যে দশমিকের পর 5টি ডিজিট পর্যন্ত গণনা করা হবে।
  • BigDecimal.divide() মেথডে MathContext ব্যবহার করা হয়েছে, যাতে সঠিকতা এবং গোলকরণ পদ্ধতি কার্যকর হয়।

2. MathContext with Rounding Mode

এখন আমরা দেখবো কিভাবে RoundingMode ব্যবহার করা হয়। গোলকরণের বিভিন্ন পদ্ধতি রয়েছে, যেমন:

  • RoundingMode.HALF_UP: এটি সাধারণ গোলকরণ পদ্ধতি যেখানে .5 সংখ্যাকে পরবর্তী বড় সংখ্যায় রাউন্ড করা হয়।
  • RoundingMode.CEILING: এটি সর্বদা বড় সংখ্যায় রাউন্ড করে।
  • RoundingMode.FLOOR: এটি সর্বদা ছোট সংখ্যায় রাউন্ড করে।
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;

public class MathContextExample {
    public static void main(String[] args) {
        // Set precision to 5 with HALF_UP rounding mode
        MathContext mc = new MathContext(5, RoundingMode.HALF_UP);
        
        // Create BigDecimal numbers
        BigDecimal num1 = new BigDecimal("123.456789");
        BigDecimal num2 = new BigDecimal("987.654321");
        
        // Perform division with MathContext and RoundingMode
        BigDecimal result = num1.divide(num2, mc);
        
        // Print the result
        System.out.println("Result with precision 5 and HALF_UP rounding: " + result);
    }
}

আউটপুট:

Result with precision 5 and HALF_UP rounding: 0.124999

ব্যাখ্যা:

  • এখানে RoundingMode.HALF_UP ব্যবহার করা হয়েছে, যেখানে .5 সংখ্যা পরবর্তী বড় সংখ্যায় রাউন্ড করা হয়েছে।
  • MathContext সঠিকতা 5 এবং গোলকরণ পদ্ধতি HALF_UP সহ ব্যবহার করা হয়েছে।

3. Different Rounding Modes Example

এখানে আমরা বিভিন্ন গোলকরণ পদ্ধতি (RoundingMode) ব্যবহার করে তারিখের সংখ্যা রাউন্ড করবো।

import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;

public class MathContextExample {
    public static void main(String[] args) {
        // Set precision to 5 with CEILING rounding mode
        MathContext mcCeiling = new MathContext(5, RoundingMode.CEILING);
        
        // Create BigDecimal numbers
        BigDecimal num = new BigDecimal("123.456789");
        
        // Apply rounding with CEILING
        BigDecimal resultCeiling = num.round(mcCeiling);
        System.out.println("CEILING rounding: " + resultCeiling);
        
        // Set precision to 5 with FLOOR rounding mode
        MathContext mcFloor = new MathContext(5, RoundingMode.FLOOR);
        
        // Apply rounding with FLOOR
        BigDecimal resultFloor = num.round(mcFloor);
        System.out.println("FLOOR rounding: " + resultFloor);
    }
}

আউটপুট:

CEILING rounding: 123.45679
FLOOR rounding: 123.45678

ব্যাখ্যা:

  • RoundingMode.CEILING সর্বদা পরবর্তী বড় সংখ্যায় রাউন্ড করবে।
  • RoundingMode.FLOOR সর্বদা ছোট সংখ্যায় রাউন্ড করবে।

MathContext এবং BigDecimal এর সাথে গণনা:

আপনি MathContext এর মাধ্যমে BigDecimal এর গণনা অনেক সহজভাবে এবং সঠিকতার সাথে করতে পারেন। এখানে কিছু সাধারণ BigDecimal অপারেশন দেখানো হয়েছে যেমন যোগ, বিয়োগ, গুণ, ভাগ।

Example: Performing Arithmetic with MathContext

import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;

public class BigDecimalArithmetic {
    public static void main(String[] args) {
        // Create MathContext with precision 5 and rounding mode HALF_UP
        MathContext mc = new MathContext(5, RoundingMode.HALF_UP);
        
        // Create BigDecimal numbers
        BigDecimal num1 = new BigDecimal("123.456789");
        BigDecimal num2 = new BigDecimal("987.654321");
        
        // Perform addition with MathContext
        BigDecimal sum = num1.add(num2, mc);
        System.out.println("Sum: " + sum);
        
        // Perform multiplication with MathContext
        BigDecimal product = num1.multiply(num2, mc);
        System.out.println("Product: " + product);
        
        // Perform division with MathContext
        BigDecimal quotient = num1.divide(num2, mc);
        System.out.println("Quotient: " + quotient);
    }
}

Output:

Sum: 1111.11111
Product: 121933.38844
Quotient: 0.124999

ব্যাখ্যা:

  • Addition, Multiplication, এবং Division অপারেশনগুলি MathContext এবং BigDecimal এর সাথে সঠিকতা এবং গোলকরণ পদ্ধতি সহ করা হয়েছে।

  • MathContext ক্লাসটি BigDecimal এর সাথে কাজ করার সময় সঠিকতা এবং গোলকরণ পদ্ধতি নির্ধারণ করতে ব্যবহৃত হয়।
  • এটি BigDecimal গাণিতিক অপারেশনগুলোতে সঠিকতা নিয়ন্ত্রণ করতে সাহায্য করে, বিশেষত যখন বড় সংখ্যার গণনা বা আর্থিক গণনা করা হয়।
  • MathContext এর কনস্ট্রাক্টর দ্বারা precision এবং rounding mode নির্ধারণ করা সম্ভব, এবং এটি BigDecimal এর সাথে বিশ্লেষণ, যোগ, বিয়োগ, গুণ এবং ভাগ অপারেশনের জন্য কার্যকর।

এইভাবে, MathContext একটি গুরুত্বপূর্ণ ক্লাস যা আপনাকে আপনার গাণিতিক গণনা সঠিকভাবে পরিচালনা করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...