博客
关于我
Golang小数类型/浮点型
阅读量:195 次
发布时间:2019-02-28

本文共 1522 字,大约阅读时间需要 5 分钟。

小数类型的基本介绍与使用细节

一、小数类型的基本介绍

小数类型用于存储和处理带有小数部分的数值,例如:1.2、0.23、-1.911等。这些数值可以在计算机中以浮点数的形式存储。

二、小数类型的分类

浮点数在计算机中以特定的格式存储,主要包括三个部分:符号位、指数位和尾数位。由于存储过程中会丢失部分精度,浮点数的精度存储存在一定的限制。

1. 浮点数的存储形式

浮点数=符号位+指数位+尾数位

浮点数具有固定的有符号性。

2. 精度损失问题

由于尾数位的有限位数,存储时会丢失部分精度。例如:-123.0000901会被近似为-123.00009。

float64的精度比float32更高,适合需要高精度存储的场景。

3. 浮点数的存储结构

浮点数的存储分为三部分:符号位、指数位和尾数位。存储过程中会丢失部分精度。

三、浮点类型的使用细节

1. Golang中的浮点类型特点

Golang中的浮点类型具有固定的范围和字段长度,不受操作系统影响。

2. Golang默认浮点类型

Golang中的浮点类型默认声明为float64类型。

3. 浮点常量的表示形式

浮点常量有两种表示形式:

  • 十进制数形式:如5.12、.512(必须包含小数点)。
  • 科学计数法形式:如5.1234e2(5.1234乘以10的2次方),5.1234E-2(5.1234除以10的2次方)。

4. 选择float64的原因

在大多数开发场景下,推荐使用float64类型,因为其比float32更高精度,适合需要高精度存储的应用。

四、实战演示

1. 代码示例

package mainimport (    "fmt"    "unsafe")func main() {    var price float32 = 89.12    fmt.Println("price=", price)    var num1 float32 = -0.00089    var num2 float64 = -7809656.09    fmt.Println("num1=", num1, "num2=", num2)    var num3 float32 = -123.0000901    var num4 float64 = -123.0000901    fmt.Println("num3=", num3, "num4=", num4)    var num5 = 1.1    fmt.Printf("num5的数据类型是 %T \n", num5)    num6 := 5.12    num7 := 0.123    fmt.Println("num6=", num6, "num7=", num7)    num8 := 5.1234e2    num9 := 5.1234E2    num10 := 5.1234E-2    fmt.Println("num8=", num8, "num9=", num9, "num10=", num10)    var c1 rune = '北'    fmt.Println("c1=", c1, unsafe.Sizeof(c1))}

2. 运行结果

price= 89.12num1= -0.00089 num2= -7.80965609e+06num3= -123.00009 num4= -123.0000901num5的数据类型是 float64num6= 5.12 num7= 0.123num8= 512.34 num9= 512.34 num10= 0.051234c1= 21271 4

转载地址:http://hyhj.baihongyu.com/

你可能感兴趣的文章
PostgreSQL 存储过程基本语法
查看>>
PostgreSQL 实现批量更新、删除、插入
查看>>
PostgreSQL 导入 .gz 备份文件
查看>>
PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
查看>>
PostgreSQL 新增数据返回自增ID
查看>>
postgresql 更新多列数据
查看>>
PostgreSQL 服务启动后停止
查看>>
PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
查看>>
PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
查看>>
Qt开发——简易调色板QPalette
查看>>
PostgreSQL-解决连接时遇到的乱码问题
查看>>
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>
Qt开发——简易网络浏览器(一)
查看>>
Qt开发——简易成绩登记系统
查看>>
Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
查看>>
Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
查看>>
SpringBoot中集成XXL-JOB分布式任务调度平台,轻量级、低侵入实现定时任务
查看>>
Postgresql中的表结构和数据同步/数据传输到Mysql
查看>>
Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
查看>>