ফ্লোটিং পয়েন্ট সংখ্যা (দশমিক সংখ্যা) সঠিকভাবে স্টোর করতে DECIMAL ডেটা টাইপ ব্যবহার করুন। FLOAT বা DOUBLE দিয়ে রাউন্ডিং এরর হতে পারে।
প্রথমে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DemoTable (Price DECIMAL(10,2));
রেকর্ড যোগ করি:
mysql> INSERT INTO DemoTable VALUES(874674.50); mysql> INSERT INTO DemoTable VALUES(9948984.20); mysql> INSERT INTO DemoTable VALUES(12345678.99);
সকল রেকর্ড দেখতে:
mysql> SELECT * FROM DemoTable;
আউটপুট:
+-------------+ | Price | +-------------+ | 874674.50 | | 9948984.20 | | 12345678.99 | +-------------+
ব্যাখ্যা: DECIMAL(10,2) মানে:
10= প্রেসিশন (মোট ডিজিট সংখ্যা, দশমিক বিন্দু বাদে)2= স্কেল (দশমিক বিন্দুর পর ডিজিট সংখ্যা)- অর্থাৎ ৯৯৯৯৯৯৯৯.৯৯ পর্যন্ত স্টোর করা যায়।
কেন DECIMAL?
- এক্স্যাক্ট প্রেসিশন (ফিনান্সিয়াল ডেটার জন্য বাধ্যতামূলক)
- রাউন্ডিং এরর নেই
- FLOAT/DOUBLE বাইনারি ফ্লোটিং পয়েন্ট, যা ০.১ সঠিকভাবে রিপ্রেজেন্ট করতে পারে না
MySQL 8.0+ এ: DECIMAL(10,2) স্টোরেজে ৪ বাইট + প্রতি ৯ ডিজিটের জন্য ৪ বাইট নেয়।