小数类型/浮点型的使用
- 小数类型
- 小数类型就是用于存放小数的,比如 1.2 0.23 -1.911
- 演示案例
package main
import(
"fmt"
)
//演示golang中小数类型的使用
func main() {
var price float32 = 54.67
fmt.Println("price = ", price)
}
![](https://i-blog.csdnimg.cn/blog_migrate/7d17e7c227f41c22a89495899bfd9fc6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/532c95f75f5262d7fd97b50d48c7750d.png)
- 说明
- 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
- 演示
package main
import(
"fmt"
)
func main() {
var n1 float32 = -0.000345
var n2 float64 = -36274672.005
fmt.Println("n1 = ", n1, "n2 = ", n2)
}
![](https://i-blog.csdnimg.cn/blog_migrate/3c8fac460391ff75f4e40951f0ba20fb.png)
- 浮点数=符号位+指数位+尾数位,尾数部分可能丢失,造成精度损失
- 案例
package main
import(
"fmt"
)
func main() {
var n1 float32 = -123.0000789
var n2 float64 = -123.0000789
fmt.Println("n1 = ", n1, "n2 = ", n2)
}
![](https://i-blog.csdnimg.cn/blog_migrate/c8fef083137dcf06baa2bca648be41f6.png)
- 说明:
- float64 的精度比 float32 的要准确
- 如果我们要保存一个精度高的数,则应该选用 float64
- 浮点型的存储分为三部分:符号位+指数位+尾数位 在存储过程中,精度会有丢失
- 浮点类型使用细节:
- Golang 浮点类型有固定的范围和字段长度,不受具体 OS(操作系统)的影响。
- Golang 的浮点型默认声明为 float64 类型。
package main
import(
"fmt"
)
//Golang 的浮点型默认声明为 float64 类型
func main() {
var n1 = 1.414
fmt.Printf("n1 的数据类型是 %T ", n1 )
}
![](https://i-blog.csdnimg.cn/blog_migrate/e24e13b45cdfead88ee2cf74de3e03e7.png)
- 浮点型常量有两种表示形式
- 十进制数形式:如:5.12 .512 (必须有小数点)
- 科学计数法形式:如:5.1234e2 = 5.12 * 10 的 2 次方 5.12E-2 = 5.12/10 的 2 次方
- 十进制数形式案例
//十进制数形式:如:5.12 .512 (必须有小数点)
n1 := 1.414
n2 := .1415
fmt.Println("n1 = ", n1 , "n2 = ", n2 )
![](https://i-blog.csdnimg.cn/blog_migrate/0d457d6b22c2296a31b710fb4d10b935.png)
//5.1234e2 = 5.12 * 10 的 2 次方
n1 := 5.1234e2
//5.12E-2 = 5.12/(10 的 2 次方)
n2 := 5.12E-2
fmt.Println("n1 = ", n1 , "n2 = ", n2 )
![](https://i-blog.csdnimg.cn/blog_migrate/eec35c6e5e956d394c625699c455d240.png)
- 备注:
- 通常情况下,应该使用 float64 ,因为它比 float32 更精确。[开发中,推荐使用 float64]