每天一分钟玩转golang:基础类型之浮点型(二)

2023-05-16

大家好,我是加摩斯,觉得文章有帮助的小伙伴,记得一键三连哟~
申明:本系列两天更新一篇,纯原创,转载前请与我沟通。

Go使用两种浮点型变量来存储小数,分别为float32和float64,其采用IEEE-754标准。
float32占用4个字节,其中1位表示符号,8位表示指数,23位表示尾数。小数部分能包含7位,精确6位。
float64占用8个字节,其中1位表示符号,11位表示指数,52位表示尾数。小数部分能包含16位,精确15位。

1. 表示方法

我们可以通过var p float64来定义一个浮点型变量,浮点型的赋值可以分为下面两种方式:

p1 := .1415  // 相当于0.1415
p2 := 1.     // 相当于1.0,小数点一定要加上,不然会被推导为整型

那么p2的类型是什么呢?go语言会将p2自动推导为float64类型,而不是float32类型,这一点需要注意。
浮点类型还可以通过科学计数法来表示很大或者很小的数,通过e或者E来指定指数部分,如:

const Planck = 6.62606957e-34 // 普朗克常数

浮点型打印通过使用%f来格式化输出,且可以控制打印结果的小数点位数。

fmt.Printf("%f\n", math.Pi)      // 打印所有小数
fmt.Printf("%.2f\n", math.Pi)    // 保留两位小数

2. 数值比较

因为浮点数在计算机内部存储并不是精确的,比如0.3+0.6的结果并不是0.9,而是趋近于0.9。这个可以去自行研究IEEE-754标准中关于浮点数存储的知识,本文基础部分不进行介绍。

func main() {
	var p1 float64 = 0.3
	var p2 float64 = 0.6
	fmt.Println(p1+p2)
}
// 输出:0.8999999999999999

因为浮点类型有这样一个属性,那么对于两个浮点类型就不能直接使用==来比较大小了,可能会产生错误的结果。一般是由我们自己定义一个精度,如果两个数差值在精度内,则认为两数相等。

func isEqual(p1, p2 float64){
	if p1 - p2 < 0.000001{
		return true
	}
}

最后,优先使用float64类型,其精度更高。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每天一分钟玩转golang:基础类型之浮点型(二) 的相关文章

  • 总结java中关于继承中的成员属性和成员方法的多态细节

    问题背景 xff1a 下面的代码会输出什么 xff1f 40还是20 xff1f public class Animal public int age 61 40 public void eat System out println 34
  • 【java】浅谈instanceof关键字

    作用 xff1a 用于判断某个对象是否是某个特定类或该特定类的一个实例 返回一个布尔类型 一般格式 object instanceof class class可以是类也可以是接口 xff09 具体使用 xff1a 分编译阶段和运行阶段 xf
  • zzulioj 1185: 添加记录(结构体专题)

    题目描述 有一学生成绩表 xff0c 包括学号 姓名 3门课程成绩 已知该成绩表按学号升序排序 请编程实现 xff0c 添加一个新的学生信息 xff0c 且使成绩表仍按学号有序 xff1b 若待添加的学号与已有学号重复 xff0c 则输出错
  • 初学Java小细节自总

    1 如果子类的构造方法中没有显示地调用父类的构造方法 xff0c 那么Java编译器会自动在子类的构造方法中插入一条默认的super 语句 xff0c 来调用父类的无参构造方法 因此 xff0c 如果父类没有提供无参构造方法 xff0c 而
  • 如何配置Java的环境变量

    1 找到电脑的环境变量 xff08 直接在电脑左下角放大镜搜环境变量即可 xff09 xff1a 2 在环境变量的系统变量里新建一个名称为 xff1a JAVA HOME变量值为jdk的安装目录 xff08 直接点浏览目录去找jdk的安装根
  • 字符集、ASCII、GBK、UTF-8、Unicode、乱码、字符编码、解码问题

    首先计算机是美国人发明的用来处理数据的 xff0c 那么问题来了美国人如何和计算机交流呢 xff1f 怎么把他们的字符存储到计算机里面呢 美国需要存储的字符仅仅只是一些英文大小写 xff0c 数字 xff0c 标点 xff0c 和一些特殊字
  • 1022: 三整数排序(利用三目运算符可以使程序更加简洁)

    从键盘输入三个整数x y和z xff0c 按从大到小的顺序输出它们的值 输入 输入三个整数x y和z 输出 按从大到小的顺序输出它们的值 样例输入 复制 20 16 18 样例输出 复制 20 18 16 自己的思路 xff1a 首先找到最
  • 1025: 最大字符(scanf输入问题以及gets()和getchar()和scanf()的区别)

    给你三个ASCII字符 不含空白字符 包括空格 制表符 t 回车换行符 n xff0c 找出其中最大的那个 输入 输入包含三个字符 xff0c 之间有一个空格隔开 输出 输出ASII码最大的那个字符 xff0c 占一行 样例输入 复制 a
  • 定时器和计数器-第1季第10部分-朱有鹏-专题视频课程

    定时器和计数器 第1季第10部分 1573人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第10个课程 xff0c 主要内容是51单片机的定时器和计数器 xff0c 本课程的学习目标是对定时器的作用和意义有深入理解 x
  • 1037: 四则运算(易错:浮点数不能使用==或者!=)

    给你一个简单的四则运算表达式 xff0c 包含两个实数和一个运算符 xff0c 请编程计算出结果 输入 表达式的格式为 xff1a s1 op s2 xff0c s1和s2是两个实数 xff0c op表示的是运算符 43 xff0c 也可能
  • 1053: 正弦函数

    内存限制 xff1a 30 MB时间限制 xff1a 1 000 S 题目描述 输入x xff0c 计算上面公式的前10项和 输入 输入一个实数x 输出 输出一个实数 xff0c 即数列的前10项和 xff0c 结果保留3位小数 样例输入
  • 【无标题】

    递归算法的设计要素 递归思维是一种从下向上的思维方式 xff0c 使用递归算法往往可以简化我们的代码 xff0c 而且还帮我们解决了很复杂的问题 递归算法的难点就在于它的逻辑性 xff0c 一般设计 递归算法需要考虑以下几点 明确递归的终止
  • 递归,递推,迭代区别

    程序调用自身的编程技巧称为递归 xff08 recursion xff09 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法 xff0c 它通常把一个大型复杂的问题层层转化为一个与原问题
  • 51单片机无源蜂鸣器播放群青

    直接放代码 注 xff1a 晶振频率11 0592MHz 延时函数部分 delay c include lt intrins h gt void Delay ms unsigned int n 64 11 0592MHz while n u
  • vs调试技巧(详细)

    调试技巧 一 简介1 调试是什么2 调试的基本动作3 Debug和Rlease的介绍 二 调试介绍1 调试环境准备2 快捷键的使用 三 调试时看当前信息1 查看临时变量的值2 查看内存 四 多多动手调试 一 简介 1 调试是什么 调试本身是
  • Handling error: InvalidRequestException, Missing grant type报错原因之参数写错

    首先 xff0c 检查代码是否写的有问题 如果没有 xff0c 检查postman里面的各项参数 比如俺就是grant type写成了grant type xff08 排错的时候眼睛找瞎 xff09 xff01 xff01 xff01 改过
  • stm32 U盘升级 bootloader程序 基于stm32f407 将升级包下载到U盘中,插入到设备中,完成对主程序的升级

    stm32 U盘升级 bootloader程序 基于stm32f407 将升级包下载到U盘中 xff0c 插入到设备中 xff0c 完成对主程序的升级 xff0c 无需上位机操作 清单 u盘升级的bootloader源码 YID 32206
  • Java代码注释

    注释可以提高程序的可读性 xff0c 注释包含的文字不会对程序产生任何影响 xff0c 在Java中 xff0c 代码注释主要有以下几种 xff1a 1 单行注释 为单行注释标记 xff0c 从 开始到换行为止的所有内容均被注释而被编译器忽
  • [搞机]手机解bl锁后root刷系统

    刷机存在一定风险 xff0c 例如操作失误导致无法开机 软件损坏 设备变砖等 刷机前 xff0c 建议先了解自己手机品牌和型号 技术水平等 xff0c 再进行操作 本文章只是把自己了解的和大伙说说 xff0c 不提供软件下载 xff0c 只
  • 蜂鸣器-第1季第11部分-朱有鹏-专题视频课程

    蜂鸣器 第1季第11部分 1182人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第11个课程 xff0c 主要讲解了无源和有源蜂鸣器的概念和区别 xff0c 蜂鸣器的发声原理 定时器控制蜂鸣器的编程技巧 本节的学习目

随机推荐

  • Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范 xff0c 在涉及到Linux版本问题时经常容易混淆 xff0c 主线版本 xff0f 稳定版 xff0f 长期支持版本经常搞不清楚 xff0c 本文主要记录下内核版本命名的规则以及如何查看L
  • 基于51单片机光照强度检测智能窗帘Proteus仿真

    资料编号 xff1a 163 下面是相关功能视频演示 xff1a 163 基于51单片机光照强度检测智能窗帘Proteus仿真 源码 43 仿真 43 全套资料 功能讲解 xff1a 采用51单片机作为控制CPU xff0c 采用ADC08
  • 双色球小程序

  • 树莓派(3B):启动流程,系统初始化配置,引脚图图示说明

    目录 一 xff0c 树莓派刷机及串口方式登陆 准备工具 操作步骤 二 xff0c 配置树莓派接入网络 树莓派入网 固定树莓派的ip地址 三 xff0c 网络SSH方式登陆树莓派 打开树莓派SSH功能 登陆SSH 四 xff0c 用国内的源
  • 网络安全产品认知——边界防护

    边界防护的安全理念 边界防护 网络边界 具有不同安全级别的网络之间的分界线都可以定义为网络边界 网络边界防护 xff1a 针对不同网络环境所设置的安全防御措施 企业网络常见边界 企业内部网络与外部网络 企业部门之间 gt 业务类型 重要部门
  • python列表

    目录 1 列表 xff08 list 线性表 xff09 2 定义一个列表 1 直接用 2 用list 3 常见的方法 1 append object 向列表尾部追加元素 2 insert index object 向指定位置 xff08
  • kubernetes应用flannel失败

    按照官网给的命令 kubectl apply f https raw githubusercontent com coreos flannel master Documentation kube flannel yml 回头查看k8s的运行
  • 腾讯祭出大招VasSonic,让你的H5页面首屏秒开!

    作者简介 xff1a 陈志兴 xff0c 腾讯SNG增值产品部高级工程师 xff0c 主要负责手Q个性化业务 手Q WebView等项目 喜欢阅读优秀的开源项目 xff0c 听听音乐 xff0c 偶尔也会打打竞技类游戏 本文根据作者在201
  • 直流电机和步进电机-第1季第12部分-朱有鹏-专题视频课程

    直流电机和步进电机 第1季第12部分 1966人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第12个课程 xff0c 主要讲解了直流电机和步进电机 xff0c 其中步进电机是关键 xff0c 通过学习让大家初步掌握步
  • 无需后台接入?带你玩转VasSonic 2.0里的Local Server

    腾讯手Q增值团队于今年8月份正式开源了VasSonic xff0c 一个轻量级高性能的Hybrid框架 VasSonic框架使用并行加载 动态缓存 增量更新等手段 xff0c 实现了终端H5页面的秒开 xff0c 对用户体验的优化做的非常极
  • gcc中的-w -W和-Wall选项

    今天在看一个makefile时看到了gcc W Wall 这句 xff0c 不明其理 xff0c 专门查看了gcc的使用手册 w的意思是关闭编译时的警告 xff0c 也就是编译后不显示任何warning xff0c 因为有时在编译之后编译器
  • VNC Connect使用参数填充VNC配置文件

    VNC Server xff0c VNC Viewer和支持程序由参数控制 xff0c 为大多数用户提供了合适的默认值 您可以通过为参数指定新值来配置程序 xff1a 1 在程序启动之前 2 在启动时在命令行上 3 程序运行时 xff0c
  • arXiv Journal 2021-01-11

    想来想去 xff0c 觉得还是把每次在arXiv上扫过的文章简单记录下来 2021 01 11 hep ph 2 papershep th 2 papershep lat 1 paper hep ph 2 papers Title QCD
  • HJ28 素数伴侣

    描述 题目描述 若两个正整数的和为素数 xff0c 则这两个正整数称之为 素数伴侣 xff0c 如2和5 6和13 xff0c 它们能应用于通信加密 现在密码学会请你设计一个程序 xff0c 从已有的 N xff08 N 为偶数 xff09
  • ZRAM SWAP

    1 ZRAM 1 1 zram的理解 ZRAM xff08 压缩内存 xff09 的意思是说在内存中开辟一块区域压缩数据 就是说假设原来150MB的可用内存现在可以放下180MB的东西 本身不会提高内存容量和运行速度 只是让后台程序更少被系
  • 最简单的神经网络--BP神经网络介绍

    今天从网上看到一篇介绍BP神经网络的文章 xff0c 感觉非常好 xff0c 转载保存 转载地址 xff1a https blog csdn net weixin 40432828 article details 82192709
  • 【没有哪个港口是永远的停留~ 论文解读】SphereFace

    论文 xff1a SphereFace Deep Hypersphere Embedding for Face Recognition 代码 xff1a at https github com wy1iu sphereface 摘要 本文讨
  • 【没有哪个港口是永远的停留~ 论文解读】AM - softmax

    论文 xff1a Additive Margin Softmax for Face Verification 代码 xff1a https github com happynear AMSoftm 相似论文 xff1a CosFace La
  • 串口通信和RS485-第1季第13部分-朱有鹏-专题视频课程

    串口通信和RS485 第1季第13部分 5373人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第13个课程 xff0c 主要讲解了串行通信UART及其扩展RS485 本课程很重要 xff0c 因为串口通信是我们接触的
  • 每天一分钟玩转golang:基础类型之浮点型(二)

    大家好 xff0c 我是加摩斯 xff0c 觉得文章有帮助的小伙伴 xff0c 记得一键三连哟 xff5e 申明 xff1a 本系列两天更新一篇 xff0c 纯原创 xff0c 转载前请与我沟通 Go使用两种浮点型变量来存储小数 xff0c