MathContext ক্লাসটি java.math প্যাকেজে অন্তর্ভুক্ত এবং এটি BigDecimal এর গণনা নিয়ে কাজ করার সময় দশমিক সঠিকতা ও পরিমাণ নির্ধারণ করতে ব্যবহৃত হয়। এটি নির্দিষ্ট পরিমাণ সঠিকতা (precision) এবং গোলকৃত (rounding) পদ্ধতি সেট করার জন্য ব্যবহৃত হয়।
MathContext ক্লাসটি ব্যবহার করে আপনি গণনা করার সময় কীভাবে দশমিক সংখ্যাগুলোর সঠিকতা বজায় রাখবেন এবং কোন ধরনের গোলকরণ (rounding) পদ্ধতি ব্যবহার করবেন তা নিয়ন্ত্রণ করতে পারবেন।
MathContext এর বৈশিষ্ট্য:
- Precision: এটি গণনায় দশমিকের সঠিকতা নির্ধারণ করে, অর্থাৎ কতটি ডিজিট পর্যন্ত গণনা করা হবে।
- 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 একটি গুরুত্বপূর্ণ ক্লাস যা আপনাকে আপনার গাণিতিক গণনা সঠিকভাবে পরিচালনা করতে সহায়তা করে।
Read more