Numbers & Math (সংখ্যা ও গণিত)
Number method, Math method, random, rounding, parsing, Infinity, NaN — সংখ্যা নিয়ে কাজের বাংলা গাইড।
সংখ্যার সাথে কাজ করতে Number অবজেক্টের method আর Math-এর static method — দুটোই জানা দরকার।
Number Methods
const price = 1234.5678;
console.log(price.toFixed(2)); // "1234.57" (string দেয়)
console.log(price.toString()); // "1234.5678"
console.log(price.toPrecision(4)); // "1235" (মোট অঙ্ক)
console.log(Number.isInteger(5)); // true
console.log(Number.isInteger(5.5)); // false
console.log(Number.isFinite(5)); // true
console.log(Number.isFinite(Infinity)); // falsetoFixed(n) দশমিকের পরে n ঘর রাখে — string দেয়, সংখ্যা দরকার হলে Number(...) মুড়ে নিন।
Parsing (string → number)
console.log(parseInt("42")); // 42
console.log(parseInt("42px")); // 42 (শুরু থেকে মান)
console.log(parseInt("px42")); // NaN
console.log(parseInt("101", 2)); // 5 (binary base)
console.log(parseFloat("3.99")); // 3.99
console.log(Number("42px")); // NaN — সম্পূর্ণ string লাগেtext-এর ভেতরে সংখ্যা থাকলে parseInt(…, 10) সবচেয়ে নমনীয়। Number(...) সম্পূর্ণ convertible মান চায়।
Math Methods
console.log(Math.round(4.5)); // 5
console.log(Math.round(4.4)); // 4
console.log(Math.ceil(4.2)); // 5 (উপরের পূর্ণ)
console.log(Math.floor(4.8)); // 4 (নিচের পূর্ণ)
console.log(Math.max(3, 9, 5)); // 9
console.log(Math.min(3, 9, 5)); // 3
console.log(Math.abs(-7)); // 7
console.log(Math.pow(2, 3)); // 8
console.log(2 ** 3); // 8
console.log(Math.sqrt(16)); // 4
console.log(Math.PI); // 3.14159...Random Numbers
console.log(Math.random()); // 0 থেকে 1-এর নিচে (0 ≤ x < 1)
// 1 থেকে 10 (পূর্ণসংখ্যা)
const dice = Math.floor(Math.random() * 10) + 1;
console.log(dice);
// min থেকে max পর্যন্ত
function randomBetween(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(randomBetween(1, 6)); // 1-6Math.random() সার্বজনীন দিয়ে 0≤x<1 দেয়। নির্দিষ্ট রেঞ্জ পেতে গুণ করে, floor করে + offset যোগ করা হয়।
Infinity ও NaN
console.log(1 / 0); // Infinity
console.log(-1 / 0); // -Infinity
console.log("abc" * 3); // NaN
console.log(Number.MAX_VALUE); // 1.79e+308
console.log(Number.MIN_VALUE); // 5e-324
console.log(Number.isFinite(1 / 0)); // false
console.log(Number.isNaN("abc" * 3)); // true
console.log(Number.isNaN("abc")); // false (string নয় NaN)টাকার হিসাবের খেয়াল
// দশমিক ভগ্নাংশের ত্রুটি
console.log(0.1 + 0.2); // 0.30000000000000004
// সমাধান: সেন্টে (paisa) কাজ করুন
const total = Math.round((0.1 + 0.2) * 100) / 100;
console.log(total); // 0.3
// টাকা ফরম্যাট
const amount = 12345.5;
console.log(amount.toLocaleString("bn-BD")); // ১২,৩৪৫.৫
console.log(amount.toLocaleString("en-US", {
style: "currency",
currency: "BDT",
}));ফ্লোটিং পয়েন্ট হিসাব সব ভাষাতেই ভগ্নাংশে ভুল হয় — টাকার হিসাব integer পয়সায় করুন। দেখানোর সময় toFixed / toLocaleString ব্যবহার করুন।
| কাজ | মেথড |
|---|---|
| দশমিক ঘর | toFixed(2) |
| string → number | Number(), parseInt, parseFloat |
| রাউন্ড | Math.round / ceil / floor |
| সর্বোচ্চ/সর্বনিম্ন | Math.max / Math.min |
| র্যান্ডম | Math.random() |
| পূর্ণসংখ্যা চেক | Number.isInteger |
| NaN চেক | Number.isNaN |
NaN === NaN হলো false। চেক করতে Number.isNaN(x) বাধ্যতামূলক।
সাতটি দামের array থেকে Math.max ও Math.round ব্যবহার করে সর্বোচ্চ ও রাউন্ড করা দাম বের করুন।