اعداد (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
این مبحث بخشی از دوره آموزش کامل گو است.