কম্পিউটার টিউটোরিয়াল

MySQL-এ FLOAT এর জায়গায় DECIMAL ব্যবহার করে প্রিসিশন সমস্যা সমাধান

MySQL-এ FLOAT/DOUBLE ফ্লোটিং-পয়েন্ট টাইপে প্রিসিশন সমস্যা হয়। টাকা-পয়সা বা এক্স্যাক্ট ডেসিমেলের জন্য DECIMAL(p,s) ব্যবহার করুন।

সমস্যা

mysql> CREATE TABLE t (amt FLOAT);
INSERT INTO t VALUES (0.1), (0.2);
SELECT * FROM t;  -- 0.10000000149011612, 0.20000000298023224

সমাধান: DECIMAL(10,2)

mysql> CREATE TABLE DemoTable (Amount DECIMAL(10,2));
Query OK, 0 rows affected (0.54 sec)

mysql> INSERT INTO DemoTable VALUES
(2194848.90), (90309393.79), (8999999.68), (90900000.99);
Query OK, 4 rows affected

ফলাফল (এক্স্যাক্ট)

mysql> SELECT * FROM DemoTable;
+-------------+
| Amount      |
+-------------+
| 2194848.90  |
| 90309393.79 |
| 8999999.68  |
| 90900000.99 |
+-------------+

DECIMAL(p,s) ব্যাখ্যা

  • p (precision) = মোট ডিজিট সংখ্যা (১-৬৫)
  • s (scale) = দশমিকের পেছনের ডিজিট (০-৩০, p ≤ s)
  • DECIMAL(10,2) → ৯৯৯৯৯৯৯৯.৯৯ পর্যন্ত স্টোর করে
  • স্টোরেজ: প্রতি ৯ ডিজিটের জন্য ৪ বাইট (কম্প্যাক্ট)

কখন FLOAT/DOUBLE?

  • বিজ্ঞানীয় ক্যালকুলেশন, গ্রাফিক্স, অপ্রক্সিমেট মান
  • পারফরম্যান্স খুব জরুরি হলে (হার্ডওয়্যার অপ্টিমাইজড)
  1. MySQL-এ নির্দিষ্ট কলামের ডেটা এক্সপোর্ট করুন

  2. 'iTunes could not connect to this iPhone' সমস্যা সমাধান

  3. উইন্ডোজ ১০ পাসওয়ার্ড গ্রহণ না করলে সমাধান

  4. macOS-এ AppleAPFSMedia Not Mounted Error রিপেয়ার: নিরাপদে ডেটা রিস্টোর করুন