【原創翻譯】數值(number)

Go有不少種表示數值的類型。一般來講,咱們將數值分紅兩類:整數和浮點數。golang

整數架構

整數——跟數學意義上的整數同樣——沒有小數部分(...,-3,-2,-1,-,1,2,3,...)。但不像咱們用10進製表示整數,計算機用2進製表示。函數

咱們十進制系統又10種數字位組成。當一個位上的10種數字位都表示完了,咱們在下一位上用更大的數字進位。比方說9後面是10,99後面是100。計算機的作法也同樣,但它們沒有10個數字位,只有2個。因此計算機的計數會像這樣:0、一、十、十一、100、10一、1十、111,如此類推。另外一個不一樣之處是,計算機裏全部的整數都有一個明確的尺寸。它們只爲肯定位數的數據分配空間。因此4位的整數看起來會像:0000、000一、00十、00十一、0100。當空間不夠用的時候,計數將循環,從頭計算(會發生很些很奇怪的行爲)。post

Go的整數類型有:uint八、uint1六、uint3二、uint6四、int八、int1六、int32和int64。八、1六、3二、64告訴咱們每種類型的位數。uint的意思是「無符號整數」,而int是「有符號整數」。無符號整數只包含零和正整數。除此還有兩種類型的別名:byte跟unit8是同樣的,rune跟int32是同樣的。字節(byte)是計算機中極廣泛的衡量單位(1 byte = 8 bits,1024 bytes = 1 kilobyte,1024 kilobytes = 1 megabyte,...),所以Go中的byte會在定義其餘類型中常常被使用到。還有三種依賴於計算機的整數類型:uint、int和uintptr。它們之因此依賴於機器,是由於它們的長度取決於計算機的架構。ui

整體來講,若是你要用整數,你就用int好了。spa

浮點數code

浮點數是擁有小數部分(實數)的數(1.23四、123.四、0.0000123四、12340000)。它們在計算機裏的準確表達是很複雜的,這裏咱們沒必要知道怎麼去運用它們。如今,咱們只須要記着:ip

  1. 浮點數並不精確。有時候並不能準確表達一個數。比方說計算1.01-0.99,答案是0.020000000000000018——一個跟咱們預期的值無限接近,但不相等的值。get

  2. 除此以外,還有些其餘值能夠被表示:「不是一個數」(NaN,比方說0/0)和正負無窮(+∞和-∞)。數學

Go有兩種浮點類型:float32和float64(常常被叫作單精度和雙精度)和兩種複數(有虛數部分):complex64和complex128。一般來講咱們使用float64。

例子

讓咱們寫一個使用數值類型的例子。首先建立一個叫chapter3的文件夾並建立一個含有如下代碼的main.go文件:

package main
import "fmt"
func main() {
fmt.Println("1 + 1 =", 1 + 1)
}

若是你運行代碼,你會看到:

$ go run main.go
1 + 1 = 2

這個程序跟咱們第二章所寫的程序很類似。它們擁有相同的包聲明行,相同的包導入行,相同的函數聲明,並一樣使用了Println函數。只是此次咱們不打印Hello World,咱們打印1+1=,後面跟着1+1的結果。這個表達式由三部分組成:數值字面量1(屬於int類型),+運算符(表明着加)和另外一個數值字面量1。讓咱們用一樣的方式試試浮點數:

若是你運行代碼,你會看到:

fmt.Println("1 + 1 =", 1.0 + 1.0)

咱們用.0來告訴Go這是一個浮點數。運行這個程序將獲得同樣的結果。

Go有如下的數學運算符:

+ 加法
- 減法
* 乘法
/ 除法
% 餘法

 

原文地址:http://www.zingscript.com/translate/golang-book

相關文章
相關標籤/搜索