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()
लागू करते हैं तो यह उस निकटतम पूर्णांक तक गोल हो जाता है।