কিভাবে গো বিভাগে সঞ্চালন


89

আমি গোতে একটি সাধারণ বিভাগ সম্পাদন করার চেষ্টা করছি।

fmt.Println(3/10)

এটি 0.3 এর পরিবর্তে 0 মুদ্রণ করে। এটি এক ধরণের অদ্ভুত। কেউ দয়া করে ভাগ করতে পারেন এর পিছনে কারণ কি? আমি গোতে পৃথক পৃথকগণিত অপারেশন করতে চাই।

ধন্যবাদ

উত্তর:


93

অভিব্যক্তিটি 3 / 10একটি টাইপযুক্ত ধ্রুবক প্রকাশ। স্পেসিফিকেশন ধ্রুবক এক্সপ্রেশন সম্পর্কে এটি বলে

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

যেহেতু 3এবং 10টাইপযুক্ত পূর্ণসংখ্যার ধ্রুবক, এক্সপ্রেশনটির মান হ'ল একটি টাইপযুক্ত পূর্ণসংখ্যা ( 0এই ক্ষেত্রে)।

অপারেশনগুলির মধ্যে একটি অবশ্যই ভাসমান-পয়েন্ট ধ্রুবকটির ফলাফলের জন্য ভাসমান-পয়েন্ট ধ্রুবক হতে হবে। নিম্নলিখিত এক্সপ্রেশনগুলি টাইপযুক্ত ভাসমান-বিন্দু ধ্রুবকে মূল্যায়ন করে 0.3:

3.0 / 10.0
3.0 / 10
3 / 10.0

টাইপড কনস্ট্যান্ট ব্যবহার করাও সম্ভব। নিম্নলিখিত এক্সপ্রেশন float64ধ্রুবক মূল্যায়ন 0.3:

float64(3) / float64(10)
float64(3) / 10
3 / float64(10)

উপরের যে কোনও এক্সপ্রেশন মুদ্রণ করা মুদ্রণ করবে 0.3। উদাহরণস্বরূপ, fmt.Println(3.0 / 10)প্রিন্টগুলি 0.3।


এটি শতাংশ হিসাবে ধরে আমি ইনপুট নিচ্ছি। উদাহরণস্বরূপ যদি ব্যবহারকারী 30 দেয় তবে আমাকে 30/100 * কিছুটা করতে হবে। ইনপুট সর্বদা একটি পূর্ণসংখ্যার হবে। এই দৃশ্যে বিভাগ কীভাবে সম্পাদন করবেন?
— বৃশঙ্ক দোশি

পূর্ণসংখ্যাকে ভাসমান পয়েন্ট সংখ্যায় রূপান্তর করুন।
— Cerise Limón

আমি এফএমটি.প্রিন্টন (ফ্লোট 64 (3/10)) চেষ্টা করেছিলাম তবে এটি আমাকে 0 দেয়
— বৃশঙ্ক দোশি

8
@ বৃুষ্কডোশি: fmt.Println(float64(3) / float64(10))দেয় 0.3।
— পিটারসো

22

@ সিরিজ দ্বারা উল্লিখিত এবং প্রতি অনুমান অনুযায়ী

পাটিগণিত অপারেটররা সংখ্যার মানগুলিতে প্রয়োগ করে এবং প্রথম অপারেন্ডের মতো একই ধরণের ফলাফল দেয় ।

এই ক্ষেত্রে কেবল প্রথম অপারেন্ডের একটি ভাসমান পয়েন্ট হওয়া দরকার।

fmt.Println(3.0/10)
fmt.Println(float64(3)/10)
// 0.3 0.3

উদাহরণ


হ্যাঁ! সবে প্রথম অপারেন্ড
— এসএমমৌসভি

সর্বদা সফল হয় না, যদি "10" ইনট হিসাবে সনাক্ত হয় তবে এটি নিম্নলিখিত ত্রুটিটি উত্থাপন করবে: অবৈধ ক্রিয়াকলাপ: (মেলানো নয় এমন ধরণের ফ্লোট 64 এবং ইনট)
— Feras
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.