Golang的基础数据类型-浮点型

                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.浮点型概述

  Go语言提供两种精度的浮点数,即float32和float64,其中float32占用4个字节大小,而float64占用8个字节大小。

  这些浮点数类型的取值范围极限值可以在Golang的math包中找到:
    常量math.MaxFloat32表示folat32能取到的最大数值,如下图所示,Go语言定义为:3.40282346638528859811704183484516925440e+38;
    常量math.SmallestNonzeroFloat32表示folat32能取到的最小数值,如下图所示,Go语言定义为:1.401298464324817070923729583289916131280e-45
    常量math.MaxFloat64表示folat64能取到的最大数值,如下图所示,Go语言定义为:1.797693134862315708145274237317043567981e+308;
    常量math.MaxFloat64表示folat64能取到的最小数值,如下图所示,Go语言定义为:4.940656458412465441765687928682213723651e-324;   浮点数都是相对精准的,存在一定的误差:
    float32类型的浮点数可以提供约6个十进制数的精度,即按照四舍五入法默认小数点后保留六位。
    float64类型的浮点数可以提供约15个十进制数的精度,即按照四舍五入法默认小数点后保留十五位。   通常应该优先使用float64类型,因为float32类型的累计祭祀按无法很容易扩散,并且float32能精确表示正整数并不是很大。

二.浮点型简单应用案例

1>.单精度浮点型float32应用案例

2>.双精度浮点型float64应用案例

package main

import (
"fmt"
) func main() {
/*
温馨提示:
自动推导类型命名的浮点数类型默认为float64.
*/
a := 3.141592653589
var b float64 = 1.618033988749
/*
3.141592653589 x 1.618033988749 = 5.083203592311165 但是单精度浮点型小数点后默认保留六位,最终结果四舍五入法得到的结果为:5.083204
*/
var c float64 = a * b fmt.Printf("a的类型为:[%T],a的值为:[%f]\n", a, a)
fmt.Printf("b的类型为:[%T],b的值为:[%f]\n", b, b)
fmt.Printf("c的类型为:[%T],c的值为:[%f]\n", c, c) fmt.Printf("a x b = %f\n", c) /*
%.1f:
表示小数点后按照四舍五入法保留1位有效数字
%.2f:
表示小数点后按照四舍五入法保留2位有效数字
%.3f:
表示小数点后按照四舍五入法保留3位有效数字
...:
综上所述,依此类推即可....
*/
fmt.Printf("a x b = %.1f\n", c)
fmt.Printf("a x b = %.2f\n", c)
fmt.Printf("a x b = %.3f\n", c)
}

3>.使用浮点数的注意事项

package main

import (
"fmt"
) func main() {
/*
使用浮点数注意事项:
(1)默认浮点数类型为float64;
(2)浮点数的简写形式,生产环境中并不推荐大家这样写,可读性差.
1>.如果小数部分为0,可以省略整数部分
2>.如果小数部分为0,可以省略小数部分
(3)使用科学计数法表示数据
可以使用%e占位符来表示科学计数法,了解即可,生产环境中使用相对较少。
*/ //整数部分为0可以省略不写
a := .
fmt.Printf("a的类型为:[%T],a的值为:[%f]\n", a, a) //小数部分为0可以省略不写
b := .
fmt.Printf("b的类型为:[%T],b的值为:[%f]\n", b, b) c := 50832036.9
fmt.Printf("c的类型为:[%T],c的值为:[%f]\n", c, c) //使用科学计数法表示变量c对应的值e
d := 5.08320369e7
fmt.Printf("d的类型为:[%T],d的值为:[%f]\n", d, d)
fmt.Printf("d的类型为:[%T],d的值使用科学计数法表示为:[%e]\n", d, d)
fmt.Printf("d的类型为:[%T],d的值使用科学计数法表示为:[%E]\n", d, d)
}

Golang的基础数据类型-浮点型的更多相关文章

  1. Golang的基础数据类型-字符串型

    Golang的基础数据类型-字符串型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符型概述 上一篇博客学习了使用单引号括起来的单个字符就是字符类型,在Golang中有两种表 ...

  2. Golang的基础数据类型-字符型

    Golang的基础数据类型-字符型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符型概述 Go语言中的字符有两种,即uint8类型和rune类型. uint8类型: 我们也 ...

  3. Golang的基础数据类型-整型

    Golang的基础数据类型-整型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.整型概述 Go语言的整数类型一共有10个. int: 默认是有符号(signed)整形,占用空间 ...

  4. Golang的基础数据类型-布尔型

    Golang的基础数据类型-布尔型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool类型概述 bool类型的取值范围: bool类型的值只有两种,其值不为真即为假,可以用 ...

  5. GoLang基础数据类型--->字典(map)详解

    GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...

  6. GoLang基础数据类型-切片(slice)详解

    GoLang基础数据类型-切片(slice)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数组的长度在定义之后无法再次修改:数组是值类型,每次传递都将产生一份副本.显然这种数 ...

  7. GoLang基础数据类型--->数组(array)详解

    GoLang基础数据类型--->数组(array)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Golang数组简介 数组是Go语言编程中最常用的数据结构之一.顾名 ...

  8. GoLang基础数据类型--->字符串处理大全

    GoLang基础数据类型--->字符串处理大全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入:   高级运维工程师之路               59843264 ...

  9. golang语言基础(一)

    0.项目的组织结构: GOPATH路径下是src文件夹---->src文件夹下是项目名称---->项目名称下是该项目的各个包名---->各包名下是.go文件(一个包下,无论有多少个. ...

随机推荐

  1. warning:Pointer is missing a nullability type specifier (__nonnull or __nullable)

    当我们定义某个属性的时候  如果当前使用的编译器版本比较高(6.3+)的话经常会遇到这样一个警告:warning:Pointer is missing a nullability type speci ...

  2. Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar

    一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...

  3. rarlinux安装和使用

    rarlinux安装和使用

  4. 「国家集训队」小Z的袜子

    「国家集训队」小Z的袜子 传送门 莫队板子题. 注意计算答案的时候,由于分子分母都要除以2,所以可以直接约掉,这样在开桶算的时候也方便一些. 参考代码: #include <algorithm& ...

  5. 十四 Spring的AOP的基于AspectJ的注解开发

    Spring的AOP的基于AspectJ的注解开发 创建项目,引入jar包 编写目标类.切面类 配置目标类.切面类 在注解文件里开启AOP的开发 <?xml version="1.0& ...

  6. 吴裕雄--天生自然HADOOP操作实验学习笔记:pig简介

    实验目的 了解pig的该概念和原理 了解pig的思想和用途 了解pig与hadoop的关系 实验原理 1.Pig 相比Java的MapReduce API,Pig为大型数据集的处理提供了更高层次的抽象 ...

  7. java并发队列

    阻塞队列 常见的阻塞队列有ArrayBlockingQueue,LinkedBlockingDeque,LinkedBlockingQueue,这些队列有界且可以阻塞线程 ArrayBlockingQ ...

  8. Github版本控制系统

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 特别推荐简单易懂的廖雪锋大神制作的学习教程: https://www.liaoxuefeng.com/wiki/896043 ...

  9. php 打印格式化显示利器 <pre>

    当我们PHP调试的时候,用var_dump 或 print_r打印json数据或array数组时,html页面没有换行显示,看到的内容一大堆,不好定位. 输出前添加 <pre>,便可以自动 ...

  10. Echarts学习宝典

    1,可以使用百度图说中的图表代码复制到option中,还可在百度图说中以可视化的方式编辑数据,调整参数和编辑样式.(也可借助百度图说更改部分样式) 2,借助网站 https://echarts.bai ...