BigDecimal ক্লাসটি java.math প্যাকেজের অন্তর্গত এবং এটি arbitrary-precision decimal arithmetic প্রদান করে, যা অত্যন্ত সঠিক এবং বড় সংখ্যার গাণিতিক গণনার জন্য ব্যবহৃত হয়। BigDecimal ক্লাস ব্যবহার করা হয় যখন আমাদের দশমিক সংখ্যার সঠিকতা প্রয়োজন, যেমন অর্থনৈতিক হিসাব বা বৈজ্ঞানিক গণনা যেখানে অনেক বেশি সঠিকতার প্রয়োজন।
BigDecimal Constructor:
BigDecimal এর কনস্ট্রাক্টরগুলি বিভিন্ন ধরনের ইনপুট গ্রহণ করতে সক্ষম। এখানে String, int, long, double ইত্যাদি ধরনের ইনপুট দিয়ে BigDecimal তৈরি করা যায়। তবে double দিয়ে BigDecimal তৈরি করার সময় সতর্ক থাকতে হবে কারণ double এর সঠিকতা সীমিত এবং এটি ছোট বা বৃহৎ সংখ্যার জন্য সঠিক ফলাফল নাও দিতে পারে।
BigDecimal কনস্ট্রাক্টরের ধরন:
BigDecimal(String val): একটি স্ট্রিং মান দিয়েBigDecimalঅবজেক্ট তৈরি করা।BigDecimal(int val): একটি পূর্ণসংখ্যার মান (int) দিয়েBigDecimalতৈরি করা।BigDecimal(long val): একটি লং মান দিয়েBigDecimalতৈরি করা।BigDecimal(double val): একটি ডাবল মান দিয়েBigDecimalতৈরি করা (কিন্তু সতর্কতা প্রয়োজন, কারণdoubleসঠিকতা হারাতে পারে)।BigDecimal(String val, MathContext mc): একটি স্ট্রিং মান এবং একটিMathContextঅবজেক্ট দিয়েBigDecimalতৈরি করা, যেখানেMathContextব্যবহার করে সঠিকতা (precision) এবং গোলকরণ (rounding mode) নির্ধারণ করা হয়।
BigDecimal এর ব্যবহার এবং কনস্ট্রাক্টরের উদাহরণ:
1. String দিয়ে BigDecimal তৈরি করা
import java.math.BigDecimal;
public class BigDecimalConstructorExample {
public static void main(String[] args) {
// Using String constructor to create BigDecimal
BigDecimal bd1 = new BigDecimal("123.456");
System.out.println("BigDecimal created from String: " + bd1);
}
}
Output:
BigDecimal created from String: 123.456
ব্যাখ্যা:
BigDecimal(String)কনস্ট্রাক্টরটি একটি স্ট্রিং ব্যবহার করেBigDecimalঅবজেক্ট তৈরি করে। এটি সঠিকভাবে দশমিক মান প্যার্স করে।
2. int দিয়ে BigDecimal তৈরি করা
import java.math.BigDecimal;
public class BigDecimalIntConstructorExample {
public static void main(String[] args) {
// Using int constructor to create BigDecimal
BigDecimal bd2 = new BigDecimal(100);
System.out.println("BigDecimal created from int: " + bd2);
}
}
Output:
BigDecimal created from int: 100
ব্যাখ্যা:
BigDecimal(int)কনস্ট্রাক্টরটি একটি পূর্ণসংখ্যা (int) ব্যবহার করেBigDecimalতৈরি করে।
3. long দিয়ে BigDecimal তৈরি করা
import java.math.BigDecimal;
public class BigDecimalLongConstructorExample {
public static void main(String[] args) {
// Using long constructor to create BigDecimal
BigDecimal bd3 = new BigDecimal(123456789L);
System.out.println("BigDecimal created from long: " + bd3);
}
}
Output:
BigDecimal created from long: 123456789
ব্যাখ্যা:
BigDecimal(long)কনস্ট্রাক্টরটি একটি লং মান (long) ব্যবহার করেBigDecimalতৈরি করে।
4. double দিয়ে BigDecimal তৈরি করা (সতর্কতার সঙ্গে)
import java.math.BigDecimal;
public class BigDecimalDoubleConstructorExample {
public static void main(String[] args) {
// Using double constructor to create BigDecimal
BigDecimal bd4 = new BigDecimal(0.1); // May cause precision issues
System.out.println("BigDecimal created from double: " + bd4);
}
}
Output:
BigDecimal created from double: 0.1000000000000000055511151231257827021181583404541015625
ব্যাখ্যা:
BigDecimal(double)কনস্ট্রাক্টরটিdoubleএর সঠিকতা নিয়ে কিছু সমস্যা সৃষ্টি করতে পারে।doubleটাইপের মানে সীমিত সঠিকতা থাকে, তাই এটি বড় সংখ্যার সাথে সঠিক নয়।BigDecimalকনস্ট্রাক্টরের মাধ্যমেdoubleটাইপের মানের গণনা সঠিকভাবে নাও হতে পারে।- এই ধরনের সমস্যা এড়ানোর জন্য
StringথেকেBigDecimalতৈরি করা ভালো।
5. BigDecimal এবং MathContext ব্যবহার করে তৈরি করা
MathContext ব্যবহার করে আপনি precision (সঠিকতা) এবং rounding (গোলকরণ) নিয়ন্ত্রণ করতে পারেন। এটি BigDecimal এর গাণিতিক অপারেশনগুলোর সঠিকতা নিয়ন্ত্রণে সহায়ক।
import java.math.BigDecimal;
import java.math.MathContext;
public class BigDecimalWithMathContextExample {
public static void main(String[] args) {
// Create MathContext with precision 5
MathContext mc = new MathContext(5); // precision is set to 5
// Create BigDecimal with MathContext
BigDecimal bd5 = new BigDecimal("123.456789", mc);
System.out.println("BigDecimal with MathContext: " + bd5);
}
}
Output:
BigDecimal with MathContext: 123.46
ব্যাখ্যা:
MathContextদিয়ে সঠিকতা (precision) এবং গোলকরণের ধরন নির্ধারণ করা হয়েছে। এখানেprecision 5এর মাধ্যমে দশমিকের পরে ৫টি ডিজিট পর্যন্ত সঠিকতা বজায় রেখে মান প্রদর্শন করা হয়েছে।
BigDecimal এর অন্যান্য কার্যকারিতা:
BigDecimal ক্লাসে কিছু গুরুত্বপূর্ণ গাণিতিক অপারেশন রয়েছে যা সাধারণ গাণিতিক গণনায় ব্যবহৃত হয়:
add(): দুটিBigDecimalযোগ করার জন্য।subtract(): দুটিBigDecimalবিয়োগ করার জন্য।multiply(): দুটিBigDecimalগুণ করার জন্য।divide(): দুটিBigDecimalভাগ করার জন্য।setScale(): দশমিক স্থান নির্ধারণের জন্য (গোলকরণের নির্দিষ্ট ধরন সহ)।
উদাহরণ: BigDecimal গাণিতিক অপারেশন
import java.math.BigDecimal;
public class BigDecimalArithmeticExample {
public static void main(String[] args) {
// Create BigDecimal objects
BigDecimal num1 = new BigDecimal("100.25");
BigDecimal num2 = new BigDecimal("50.5");
// Add two BigDecimal objects
BigDecimal sum = num1.add(num2);
System.out.println("Sum: " + sum);
// Subtract two BigDecimal objects
BigDecimal difference = num1.subtract(num2);
System.out.println("Difference: " + difference);
// Multiply two BigDecimal objects
BigDecimal product = num1.multiply(num2);
System.out.println("Product: " + product);
// Divide two BigDecimal objects with scale and rounding mode
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
System.out.println("Quotient: " + quotient);
}
}
Output:
Sum: 150.75
Difference: 49.75
Product: 5062.75
Quotient: 1.98
- BigDecimal ক্লাসটি দশমিক গাণিতিক হিসাবের জন্য ব্যবহৃত হয় যেখানে সঠিকতার প্রয়োজন।
BigDecimalতৈরি করার জন্য বিভিন্ন কনস্ট্রাক্টর উপলব্ধ, যেমন String, int, long, এবং double।MathContextএর মাধ্যমে আপনি গাণিতিক অপারেশনগুলির সঠিকতা এবং গোলকরণের ধরন নির্ধারণ করতে পারেন।BigDecimalক্লাসেরadd(),subtract(),multiply(),divide()ইত্যাদি গাণিতিক অপারেশনগুলি সঠিকতার সাথে হিসাব করতে সহায়ক।
Read more