Lua:
সংখ্যা নির্ণয়
কিভাবে:
-- Lua তে বেসিক গোলকরণ অন্তর্ভুক্ত নেই, তবে আপনি একটি ফাংশন নির্ধারণ করতে পারেন:
function round(num)
return num >= 0 and math.floor(num + 0.5) or math.ceil(num - 0.5)
end
print(round(3.5)) -- 4
print(round(2.3)) -- 2
print(round(-1.6)) -- -2
-- নির্দিষ্ট একটি দশমিক স্থানে গোলকরণ করার জন্য:
function round(num, decimalPlaces)
local mult = 10^(decimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
print(round(3.14159, 2)) -- 3.14
print(round(1.98765, 3)) -- 1.988
গভীর ডুব
Lua অন্যান্য কিছু ভাষার মত বক্সের বাইরে গোলকরণ ফাংশন অন্তর্ভুক্ত করে না। ঐতিহাসিকভাবে, আপনাকে নিজের ফাংশন লিখতে হবে অথবা তৃতীয়-পক্ষের লাইব্রেরি ব্যবহার করতে হবে। প্রচলিত উপায়গুলি নীচে নামার জন্য math.floor()
এবং উপরে উঠার জন্য math.ceil()
ব্যবহার করে, এবং তা করার আগে সংখ্যার চিহ্ন অনুযায়ী 0.5 যোগ অথবা বিয়োগ করে।
নিজের ফাংশন তৈরির বিকল্প অন্তর্ভুক্ত “lua-users wiki” অথবা “Penlight” মত লাইব্রেরিগুলি। প্রতিটির নিজস্ব সুবিধা এবং বাধা আছে, যেমন অতিরিক্ত বৈশিষ্ট্য বা অধিক ওভারহেড।
অভ্যন্তরীণভাবে, এই ফাংশনগুলি সাধারণত কম্পিউটারগুলি কীভাবে ফ্লোটিং-পয়েন্ট সংখ্যাগুলি সঞ্চয় করে তা ব্যবহার করে কাজ করে। আপনি যে পজিটিভ ফ্লোটটি গোলকরণ করতে চান তাতে 0.5 যোগ করলে, তা পরবর্তী পূর্ণসংখ্যা মানের সীমানা অতিক্রম করে, তাই যখন আপনি math.floor()
প্রয়োগ করেন তা নিকটতম পূর্ণসংখ্যাতে নামায়।