Go语言 -浮点数
时间:2022-05-04
本文章向大家介绍Go语言 -浮点数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Go提供了两种size的浮点数,float32和float64。它们的算术规范是由IEEE754国际标准定义,现代CPU都实现了这个规范。
浮点数能够表示的范围可以从很小到很巨大,这个极限值范围可以在math包中获取,math.MaxFloat32表示float32的最大值,大约是3.4e38,math.MaxFloat64大约是1.8e308,两个类型最小的非负值大约是1.4e-45和4.9e-324。
float32大约可以提供小数点后6位的精度,作为对比,float64可以提供小数点后15位的精度。通常情况应该优先选择float64,因此float32的精确度较低,在累积计算时误差扩散很快,而且float32能精确表达的最小正整数并不大,因为浮点数和整数的底层解释方式完全不同,具体见IEEE754详解。
var f float32 = 16777216 // 1 << 24
fmt.Println(f == f+1) // "true"!
浮点数字面量可以使用十进制数字表示:
const e = 2.71828 // (非精确值)
小数点前面或者后面的数字都可以省略,例如:.707 , 1. ,对于那种很小或者很大的数值最好用科学计数法,在指数前加上e或者E:
const Avogadro = 6.02214129e23 // 阿伏伽德罗常数
const Planck = 6.62606957e-34 // 普朗克常数
fmt打印浮点数时,若使用%g参数,会采用更高的精度更紧凑的表现形式进行打印,但是在打印表格数据时,%e(指数)或者%f(非指数的)的形式可能更合适,上面三个参数都可以控制打印的宽度和精度:
for x := 0; x < 8; x++ {
fmt.Printf("x = %d e^x = %8.3fn", x, math.Exp(float64(x)))
}
上面的代码使用了小数点后3位的精度进行打印,打印宽度是8个字符:
x = 0 ex = 1.000
x = 1 ex = 2.718
x = 2 ex = 7.389
x = 3 ex = 20.086
x = 4 ex = 54.598
x = 5 ex = 148.413
x = 6 ex = 403.429
x = 7 ex = 1096.633
对于浮点数的使用,如果是服务器和客户端传输的话,直接用string类型传递数据最好,不用考虑截取的问题
- Mercari Price 比赛分享 —— 语言不仅是算法和公式而已
- Github 项目推荐 | GAN 的 Keras 实现案例集合 —— Keras-GAN
- Github 项目推荐 | 微软开源 MMdnn,模型可在多框架间转换
- 半自动化运维之动态添加数据文件(一) (r5笔记第55天)
- 半自动化运维之动态添加数据文件(二) (r5笔记第56天)
- 11g Active DataGuard初探(r5笔记第54天)
- Github 项目推荐 | 用于构建端对端对话系统和训练聊天机器人的开源库 —— DeepPavlov
- 我身边的一些数据库事故 (r5笔记第52天)
- 一个清理脚本的改进思路(r5笔记第51天)
- 【专业技术】Python爬虫:抓取手机APP的传输数据
- 海量数据迁移之传输表空间(一) (r5笔记第71天)
- 一条sql语句的改进探索(r5笔记第70天)
- 【专业技术】Node.js 究竟是什么?
- Github 项目推荐 | 用 Pytorch 实现的 WaveNet-Vocoder
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MAC系统 JDK 卸载及彻底删除
- 轻松学Pytorch –Mask-RCNN图像实例分割
- docker安装awvs13
- 远程连接kail Permission denied或者refused【已解决】
- 设计模式~原始模型模式(二)
- 面向对象的7种设计原则(6)-迪米特原则
- LeetCode 刷题记录 1-5
- 你掉的是这个免费服务器,还是这个 Docker 实验平台
- 我能赢吗
- 最长公共子串/序列问题
- 个性化终端 | zsh bash oh-my-zsh
- VirtualBox无限嵌套方法 | 虚拟机套娃
- Win10 LTSC 激活方法 | Win10专业版(永久激活)长期服务版 LTSC 2019密钥
- Nginx代理以及面向未来的HTTP
- git的基本使用