Go:
সংখ্যা নির্ণয়

কিভাবে:

Go-তে, ম্যাথ প্যাকেজে নির্দিষ্ট সংখ্যক দশমিক স্থানে সংখ্যা গোলাকার করার জন্য সরাসরি কোনো বিল্ট-ইন ফাংশন নেই। তবে, পূর্ণ সংখ্যার জন্য ফাংশনের একটি সম্মিলন ব্যবহার করে অথবা দশমিক স্থানের জন্য একটি কাস্টম ফাংশন বাস্তবায়ন করে এটি সম্ভব।

নিকটতম পূর্ণ সংখ্যায় গোলাকার করা:

নিকটতম পূর্ণ সংখ্যায় গোলাকার করতে, আপনি ধনাত্মক সংখ্যার জন্য math.Floor() ফাংশন এবং একটি যোগ 0.5 এবং ঋণাত্মক সংখ্যার জন্য math.Ceil() ফাংশন এবং একটি বিয়োগ 0.5 ব্যবহার করতে পারেন, আপনি যে দিকে গোলাকার করা চান সেই ভিত্তিতে।

package main

import (
	"fmt"
	"math"
)

func main() {
	fmt.Println(math.Floor(3.75 + 0.5))  // আউটপুট: 4
	fmt.Println(math.Ceil(-3.75 - 0.5)) // আউটপুট: -4
}

নির্দিষ্ট সংখ্যক দশমিক স্থানে গোলাকার করা:

নির্দিষ্ট সংখ্যক দশমিক স্থানে গোলাকার করার জন্য, একটি কাস্টম ফাংশন ব্যবহৃত হতে পারে যেখানে আপনি সংখ্যাটিকে 10^n দ্বারা গুণ (n হল দশমিক স্থানের সংখ্যা), আগের মতো নিকটতম পূর্ণ সংখ্যায় গোলাকার করে, এবং তারপর 10^n দ্বারা ভাগ করে।

package main

import (
	"fmt"
	"math"
)

func roundToDecimalPlace(number float64, places int) float64 {
	shift := math.Pow(10, float64(places))
	return math.Round(number*shift) / shift
}

func main() {
	fmt.Println(roundToDecimalPlace(3.14159, 2)) // আউটপুট: 3.14
	fmt.Println(roundToDecimalPlace(-3.14159, 3)) // আউটপুট: -3.142
}

গভীরে ডুব দিন

কম্পিউটার প্রোগ্রামিংয়ে সংখ্যা গোলাকার করা একটি মৌলিক অপারেশন, যা বাইনারি সিস্টেমে বাস্তব সংখ্যাগুলি প্রতিনিধিত্ব করা ঐতিহাসিক চ্যালেঞ্জের সাথে যুক্ত। অনেক বাস্তব সংখ্যা বাইনারিতে সঠিকভাবে প্রতিনিধিত্ব করা সম্ভব না হওয়ার কারণে গোলাকার করার প্রয়োজন সৃষ্টি হয়, যা অনুমানিত ত্রুটিকে জন্ম দেয়।

Go-তে, নির্দিষ্ট দশমিক স্থানে গোলাকার করার পদ্ধতি তুলনামূলকভাবে ম্যানুয়াল, যে ভাষাগুলি নির্দিষ্ট দশমিক স্থানে গোলাকার করার বিল্ট-ইন ফাংশন অফার করে তার তুলনায়। তবে, Go স্ট্যান্ডার্ড লাইব্রেরির math প্যাকেজে মৌলিক বিল্ডিং ব্লকস (যেমন math.Floor এবং math.Ceil) প্রদান করা হয়, যা অ্যাপ্লিকেশন দ্বারা প্রয়োজনীয় যেকোনো গোলাকার তন্ত্র তৈরির জন্য।

এই ম্যানুয়াল পদ্ধতি, যদিও মনে হতে পারে বেশি জটিল, প্রোগ্রামারদের বিভিন্ন অ্যাপ্লিকেশনের নির্ভুলতা এবং সঠিকতার প্রয়োজন অনুযায়ী সংখ্যা কিভাবে গোলাকার করা হবে তা নিয়ন্ত্রণ করার সুযোগ দেয়। তৃতীয় পক্ষের লাইব্রেরিগুলি বা কাস্টম গোলাকার ফাংশন ডিজাইন করা যখন জটিল সংখ্যা নিয়ে কাজ করা হয় বা স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত নয় এমন অধিক উন্নত গাণিতিক অপারেশনের প্রয়োজন হলে সরাসরি সমাধান প্রদান করতে পারে।

সমাপ্তির কথা বলতে গেলে, Go-র স্ট্যান্ডার্ড লাইব্রেরি সরাসরি দশমিক স্থানে গোলাকার করার ফাংশনালিটি অফার না করলেও, এর ব্যাপক ম্যাথেম্যাটিকাল ফাংশনের সেট ডেভেলপারদের বিশেষ প্রয়োজন অনুযায়ী সুদৃঢ় গোলাকার সমাধান বাস্তবায়ন করতে সক্ষম করে।