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


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.