【原创翻译】数值(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

相关文章
相关标签/搜索