বাংলা অঙ্কে হিসাব কেন মেলে না: Excel, ফর্ম ও প্রোগ্রামে সংখ্যার সমস্যা ও সমাধান

বাংলা অঙ্কে ১২৩ যোগ করলে হিসাব মেলে না, ইংরেজি অঙ্কে 123 বদলালে মেলে

স্প্রেডশিটে দামের কলাম বাংলা অঙ্কে লিখেছেন, কিন্তু যোগফল আসছে না। ওয়েবসাইটের ফর্মে বাংলায় বয়স লিখলে “সঠিক সংখ্যা দিন” দেখাচ্ছে। এসবের পেছনে একই কারণ: সফটওয়্যারের চোখে বাংলা অঙ্ক সব সময় সংখ্যা নয়। সংখ্যা রূপান্তর টুল দিয়ে অঙ্ক ইংরেজিতে বদলালে সাধারণত সমস্যা মিটে যায়। এই লেখায় কারণটা বোঝানো হলো, সঙ্গে কয়েকটি ভাষায় আসল ফল।

কম্পিউটারের কাছে অঙ্ক একটি চিহ্ন

কম্পিউটারে প্রতিটি অক্ষর বা অঙ্কের একটি নির্দিষ্ট কোড আছে (ইউনিকোড)। ইংরেজি 0 থেকে 9-এর কোড U+0030 থেকে U+0039। বাংলা ০ থেকে ৯-এর কোড U+09E6 থেকে U+09EF। কোড আলাদা বলে কম্পিউটার এদের দুটি আলাদা চিহ্ন হিসেবে চেনে। মানুষ দেখে “এক”, কম্পিউটার দেখে একটি বাংলা লিপির চিহ্ন।

অনেক সফটওয়্যার “সংখ্যা” বলতে ইংরেজি অঙ্কই ধরে। বাংলা অঙ্ক তখন সংখ্যা না হয়ে সাধারণ লেখা (টেক্সট) হিসেবে থেকে যায়, আর লেখাকে যোগ বা গুণ করা যায় না।

বাস্তব উদাহরণ: তিন ভাষায় তিন ফল

নিচের ফলগুলো আমরা পাইথন, জাভাস্ক্রিপ্ট ও পিএইচপিতে চালিয়ে দেখেছি। বাংলা অঙ্কের লেখা “১২৩”-কে সংখ্যায় বদলাতে চাইলে:

বাংলা অঙ্ক ১২৩ পাইথনে ১২৩ সংখ্যা হিসেবে চলে, জাভাস্ক্রিপ্টে NaN আর পিএইচপিতে ০ দেয়, ছক
একই লেখা, তিন ভাষায় তিন ফল।
ভাষাকোডফল
পাইথনint(“১২৩”) + 1124
জাভাস্ক্রিপ্টNumber(“১২৩”)NaN (সংখ্যা নয়)
পিএইচপি(int) “১২৩”0

অর্থাৎ পাইথন বাংলা অঙ্ক বুঝে ফেলে, কিন্তু জাভাস্ক্রিপ্ট ও পিএইচপি বোঝে না। ফলে একই ওয়েবসাইটের এক অংশে চললেও অন্য অংশে ভুল ফল আসতে পারে। পিএইচপির ক্ষেত্রে আরও বিপজ্জনক: কোনো ত্রুটির বার্তা ছাড়াই ০ ফেরত আসে, ফলে ভুলটা চোখে পড়ে না। তাই কোডে ঢোকানোর আগে অঙ্ক ইংরেজিতে বদলে নেওয়াই নিরাপদ।

স্প্রেডশিট ও ফর্মে সাধারণ লক্ষণ

নিচের লক্ষণ দেখলে বুঝবেন অঙ্ক সংখ্যা হিসেবে ধরা পড়ছে না:

  • ঘরের লেখা বাঁ দিকে লেগে থাকে (সংখ্যা সাধারণত ডান দিকে সরে)।
  • যোগফলে বাংলা অঙ্কের ঘরগুলো ধরা হয় না, ফল ০ বা কম আসে।
  • বড়-ছোট সাজালে (সর্ট) ক্রম এলোমেলো হয়, কারণ লেখা হিসেবে সাজানো হচ্ছে।
  • ফর্মে “সংখ্যা দিন” বা “অবৈধ মান” বার্তা আসে।
  • ফিল্টারে ইংরেজি অঙ্কে খুঁজলে বাংলা অঙ্কের সারি মেলে না।

এসব আচরণ সফটওয়্যার ও সংস্করণভেদে আলাদা হতে পারে, তাই সন্দেহ হলে একটি ঘরে নিজে পরীক্ষা করে দেখুন।

ঠিক করার ধাপ

বাংলা অঙ্কে লেখা তথ্য রূপান্তর টুলে ইংরেজি অঙ্ক করে তারপর যোগ বা সাজানোর ধাপ
হিসাবের আগে অঙ্ক বদলে নিন।
  1. সমস্যার কলামটি কপি করুন।
  2. সংখ্যা রূপান্তর টুলে বসিয়ে ইংরেজি অঙ্কে বদলান।
  3. ফল আবার কলামে বসান।
  4. যোগফল, সর্ট ও ফিল্টার আবার চালিয়ে দেখুন।
  5. বড় তালিকায় কয়েকটি সারি হাতে মিলিয়ে নিন।

কমা বা দশমিক বিন্দু যুক্ত সংখ্যায় রূপান্তরের পর আরেকটি জিনিস দেখুন: কিছু সফটওয়্যারে অঞ্চলের সেটিং অনুযায়ী দশমিক চিহ্ন আলাদা হতে পারে। বাংলাদেশে সাধারণত দশমিকে বিন্দু ও হাজারের ভাগে কমা চলে।

ফর্ম বানালে বা ডেটা নিলে

নিজের ওয়েবসাইট বা ফর্ম থাকলে ব্যবহারকারীর দেওয়া অঙ্ক সংরক্ষণের আগে একরূপে এনে নিলে অনেক ঝামেলা বাঁচে। সহজ পথ: গ্রহণের সময় সব বাংলা অঙ্ককে ইংরেজি অঙ্কে বদলে তারপর যাচাই করা। এতে ব্যবহারকারী বাংলায় লিখলেও ডেটাবেসে একই ধরন থাকে।

এখানে মনে রাখার বিষয়: কেবল অঙ্ক বদলান, বাকি অক্ষরে হাত দেবেন না। ফোন নম্বরে দাঁড়ি ও প্লাস, দামে কমা ও দশমিক যেমন আছে তেমনই থাকতে হবে।

কখন বদলানোর দরকার নেই

ছাপা লেখা, চিঠি ও বইয়ের মতো যেখানে কেউ হিসাব চালাবে না, সেখানে বাংলা অঙ্কই ভালো। সমস্যা শুধু যেখানে সফটওয়্যার সংখ্যা চেনার চেষ্টা করছে। বাংলা-ইংরেজি অঙ্কের মিলের ছক দেখুন রূপান্তরের নিয়মের গাইডে, আর নথির মিশ্র অঙ্কের ভুল ধরতে পড়ুন সাধারণ ভুলের গাইড।

টাকার অঙ্ক নিয়ে কাজ করলে ভ্যাট যোগ-বিয়োগের গাইড ও ভ্যাট ক্যালকুলেটর কাজে লাগতে পারে। সেখানেও ইংরেজি অঙ্কে বসানো সংখ্যা নিয়ে হিসাব হয়।

সীমাবদ্ধতা ও হালনাগাদ: এখানকার ফল আমাদের চালানো নির্দিষ্ট পরীক্ষার ওপর ভিত্তি করে, ভাষা ও সংস্করণ বদলালে আচরণ বদলাতে পারে। স্প্রেডশিট বা ফর্মের বেলায় নিজের সফটওয়্যারে একটি ঘরে পরীক্ষা করে নিন। হালনাগাদ: ২৩ অক্টোবর ২০২৬।

সাধারণ প্রশ্ন

বাংলা অঙ্কে লেখা সংখ্যা যোগ হচ্ছে না কেন?

অনেক সফটওয়্যার বাংলা অঙ্ককে সংখ্যা না ধরে সাধারণ লেখা ধরে। ইংরেজি অঙ্কে বদলালে সাধারণত যোগ হয়।

সব প্রোগ্রামিং ভাষায় কি একই সমস্যা হয়?

না। আমাদের পরীক্ষায় পাইথন বাংলা অঙ্ক সংখ্যায় বদলাতে পেরেছে, জাভাস্ক্রিপ্ট ও পিএইচপি পারেনি। তাই নির্দিষ্ট ভাষায় নিজে যাচাই করুন।

ইংরেজিতে বদলালে কি সংখ্যার মান বদলায়?

না। মান একই থাকে, শুধু লেখার চিহ্ন বদলায়। ১২৩ আর 123 একই সংখ্যা।