اعداد (Numbers)

کار با اعداد صحیح و اعشاری در Go، توابع ریاضی پکیج math و تبدیل نوع عددی.

انواع عددی در Go

اعداد صحیح (Integers)

نوعحجممحدوده
int8۸ بیت-۱۲۸ تا ۱۲۷
int16۱۶ بیت-۳۲,۷۶۸ تا ۳۲,۷۶۷
int32۳۲ بیت±۲ میلیارد
int64۶۴ بیت±۹ کوینتیلیون
int۳۲/۶۴ بیتبسته به سیستم (پیش‌فرض)
uintمثل intفقط مثبت (بدون علامت)

اعداد اعشاری (Floats)

نوعحجمدقت
float32۳۲ بیت~۷ رقم اعشار
float64۶۴ بیت~۱۵ رقم اعشار (پیش‌فرض)
var a float32 = 3.14159265
var b float64 = 3.141592653589793

fmt.Println(a)  ← 3.1415927
fmt.Println(b)  ← 3.141592653589793
همیشه از float64 استفاده کنید مگر اینکه دلیل خاصی برای صرفه‌جویی حافظه داشته باشید.

عملیات ریاضی پایه

a, b := 17, 5

fmt.Println(a + b)   ← 22 (جمع)
fmt.Println(a - b)   ← 12 (تفریق)
fmt.Println(a * b)   ← 85 (ضرب)
fmt.Println(a / b)   ← 3  (تقسیم صحیح!)
fmt.Println(a % b)   ← 2  (باقیمانده)
تقسیم دو عدد صحیح در Go نتیجه صحیح می‌دهد — بخش اعشاری حذف می‌شود! برای نتیجه اعشاری، حداقل یکی باید float باشد.

پکیج math

توابع ریاضی پیشرفته در پکیج math هستند:

import "math"

math.Sqrt(16)      ← 4 (جذر)
math.Pow(2, 10)    ← 1024 (توان)
math.Abs(-7)       ← 7 (قدر مطلق)
math.Floor(3.7)    ← 3 (گرد به پایین)
math.Ceil(3.2)     ← 4 (گرد به بالا)
math.Round(3.5)    ← 4 (گرد کردن)
math.Max(10, 20)   ← 20
math.Min(10, 20)   ← 10
math.Pi            ← 3.14159...

تبدیل نوع عددی

در Go تبدیل نوع همیشه صریح است:

var i int = 42
var f float64 = float64(i)   ← int به float
var j int = int(f)           ← float به int (بخش اعشاری حذف!)

// تقسیم با نتیجه اعشاری
a, b := 17, 5
result := float64(a) / float64(b)
fmt.Println(result)  ← 3.4

اعداد بزرگ

برای خوانایی، می‌توانید از _ به‌عنوان جداکننده استفاده کنید:

population := 8_000_000_000   ← ۸ میلیارد
fmt.Println(population)       ← 8000000000

این مبحث بخشی از دوره آموزش کامل گو است.

ابزارهای مرتبط