package mainimport ("fmt""math"
)func main(){// 声明浮点类型变量// 以下三种声明方式均是等价的days := 3.1415// var days = 3.1415// var days float64 = 3.1415// 只要数字含有小数部分,那么它的类型就是float64fmt.Println("days =", days)// 如果你使用一个整数来初始化某个变量,那么你必须指定它的类型为float64,否则它就是一个整数类型var answer float64 = 42fmt.Printf("answer = %f\n", answer)year := 2020fmt.Println("year =", year)/* 单精度浮点数类型 */// Go语言中有两种浮点数类型:// 1.默认是float64// a.64位的浮点类型// b.占用8个字节内存// c.某些编程语言把这种类型称为double// 2.float32// a.占用4个字节内存// b.精度比float64低// c.有时候也叫单精度类型// 想使用单精度类型,必须在声明变量时指定该类型var pi64 = math.Pivar pi32 float32 = math.Pifmt.Println("pi64 =", pi64)fmt.Println("pi32 =", pi32)/* 单精度的使用场景 */// 1.当处理大量数据时,例如3D游戏中的数千个顶点,使用float32牺牲精度来节省内存是有意义的// 2.math包中的函数操作都是float64类型,所以应该首选使用float64,除非你有足够的理由不去使用它/* 零值 */// go语言中每个类型都有一个默认值,称为零值// 当你声明变量却不对其进行初始化时,它的值就是零值var price float64fmt.Println("price =",price)/* 显示浮点类型 */// 1.使用Print或Println打印浮点类型时,默认的行为是尽可能多显示几位小数// 2.如果你不想这样,那么应该使用Printf函数,结合%f格式化动词来指定显示小数的位数third := 1.0 / 3fmt.Println("third =",third)fmt.Printf("thirdv = %v\n", third)fmt.Printf("thirdf = %f\n", third)fmt.Printf("third3f = %.3f\n", third)  // %.3f小数点后保留3位fmt.Printf("third42f = %4.2f\n", third) // %4.2f包含小数点共4位,其中小数点后保留2位second := 11 / 3fmt.Println("second =",second)  // 3/* %f格式化动词 */// 它有两部分组成:宽度 + 精度// 宽度:会显示出的最少字符个数(包含小数点和小数)// a.如果宽度大于数字的个数,那么左边会填充空格// b.如果没有指定宽度,那么就按实际的位数进行显示// 精度:小数点后面显示的位数// 如果想使用0代替空格作为填充fmt.Printf("%05.2f\n", third)first := 21.0 / 5.0fmt.Println(first)// 如何比较两个浮点数payment := 0.1payment += 0.2fmt.Println(payment == 0.3)// 正确的做法fmt.Println(math.Abs(payment - 0.3) < 0.0001)
}

go语言中的float类型相关推荐

  1. C语言中double\float类型默认输出几位小数

    首先,吐槽一下,就这么几句话的事情,你就收费,真的不想说啥了~ 然后正文给大家分享一下小数点默认输出的位数 C语言中常用的小数有俩种类型: float  比特数32  有效数字 6~7 double  ...

  2. c语言如何找小数点后有几位皇帝,C语言中,float类型怎么储存小数点后六位的,第六位会四舍五入么?...

    你上面的2个结果写颠倒了吧? -- 这里面涉及到两个精度问题,即printf的指定精度,以及c的数据类似float和double的精度.1printf("%f\n",x); %f, ...

  3. c语言中的float类型,C语言中float类型详解

    C/C++中, 浮点数,float以及 double 在内存中是怎样存储的? 假如,我有32-bit 8bit 8bit 8bit 0 0 0 0 0 1 1 1 1 对于整形int,我们可以很快得出 ...

  4. double取两位小数_Java语言中:float、double数据类型在内存中是如何存储的

    java语言中,float类型数字在计算机中用4个字节(32位)来存储.double类型占用8个字节(64位). 从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float ...

  5. c语言程序float的意思,c语言中的float表示什么意思?

    c语言中的float表示什么意思? 发布时间:2020-04-03 14:51:43 来源:亿速云 阅读:384 作者:小新 c语言中的float表示什么意思?很多人都不太了解,今天小编为了让大家更加 ...

  6. c char*转int_C语言中的char类型也有signed和unsigned?字符也有正负之分吗?

    C语言中的 unsigned int 和 signed int 类型的区别,相信即使是初学者也是清楚的,无非就是最高位是否用来做符号位而已.但是最近有读者问我,为什么 char 类型也要区分 unsi ...

  7. c语言中 函数值类型的定义可以,C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是...

    C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是 更多相关问题 An allophone refers to any of the different forms of a ______. ...

  8. C语言中的int类型的范围是由什么决定的

    C语言中的int类型的范围是由什么决定的 在 K&R 经典教材 The C Programming Language 的2.2节中,对 int 类型是这样描述的 an integer, typ ...

  9. 8位alu运算器(vhdl语言)_C语言中signed char类型,能表示-128到127,为什么负数多一位?...

    初学者在学习C语言,谈到不同数据类型时,一般都能理解 unsigned 和 signed 的区别,无非就是有无符号而已.但是对于 signed 数据类型的数据范围,初学者却常常会感到迷惑. 对于 si ...

最新文章

  1. 数据库原理 - 序列5 - 事务是如何实现的? - Undo Log解析
  2. 二维几何变换---OpenGL几何变换编程示例
  3. VTK:可视化之ColorGlyphs
  4. MonkeyFest2018 微软最有价值专家讲座
  5. 面试官重点考察求职者这5项能力
  6. 手机快充芯片及其技术标准和设计原理详解
  7. cbv继承view是哪个包_包你一眼就心动!两款帅爆国产轿车来袭,选谁都不错
  8. python面对对象编程写一个程序有一个汽车_汽车类面向对象编程Python
  9. 一对一家教如何辅导_小学六年级数学一对一家教怎么教/小学六年级数学怎样辅导...
  10. JSCapture实现屏幕捕捉
  11. PhoneClean(iOS设备清理)下载安装,软件介绍
  12. MySQL与Oracle的DDL、DML语法对比(含可重复执行SQL脚本编写方式)
  13. android imageview 图片模糊,imageview实现高斯模糊
  14. SpringBoot java串口操作(rxtx)
  15. 【C语言小游戏】答题系统
  16. 计算机桌面有边框阴影,为什么电脑上的所有显示都会有阴影呢?(桌面图标、对话框等)...
  17. JavaFx教程-03JavaFX Application的生命周期
  18. 腾讯安全全面出击:双十一不该成为黑产的狂欢
  19. mac输密码麻烦?一位数密码来了!
  20. 无线充电组别国一队:浙江工业大学

热门文章

  1. ifndef/define/endif——主要目的是防止头文件的重复包含和编译
  2. postman设置Cookie上行参数访问接口
  3. 使用C语言扩展Python(三)
  4. 如何将mysql数据导入Hadoop之Sqoop安装
  5. Swift - 委托(delegate)的介绍,及使用样例
  6. 将Eclipse代码导入到Android Studio的两种方式
  7. Python简介及安装
  8. DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)
  9. netsh与用法--XP的各种网络命令
  10. Linux 忘记密码如何登陆—续篇2救援模式