5.Go语言基本类型

您所在的位置:网站首页 浮点型函数是什么意思啊 5.Go语言基本类型

5.Go语言基本类型

2024-07-10 08:53| 来源: 网络整理| 查看: 265

浮点类型(小数类型) Go语言支持两种浮点型数:float32 和 float64。这两种浮点型数据格式遵循 IEEE 754 标准:

float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。

取值范围 这些浮点数类型的取值范围可以从很微小到很巨大。浮点数的范围极限值可以在math包找到。常量 math.MaxFloat32表示float32能表示的最大数值,大约是 3.403e38;对应的math.MaxFloat64常量大约是 1.798e308。它们分别能表示的最小值近似为 -3.403e38和 -1.798e308。 在这里插入图片描述 一个float32类型的浮点数可以提供大约6个十进制数的精度,而float64则可以提供约15个十进制数的精度。

函数math.IsNaN用于测试一个数是否是非数NaN,math.NaN则返回非数对应的值。虽然可以用math.NaN来 表示一个非法的结果,但是测试一个结果是否是非数NaN则是充满风险的,因为NaN和任何数都是不相等的。 如果一个函数返回的浮点数结果可能失败,最好的做法是用单独的标志报告失败。

nan := math.NaN() fmt.Println(nan == nan, nan < nan, nan > nan) // "false false false"

对浮点数的说明

关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位尾数部分可能丢失,造成精度损失。 -123.0000901 [-1238888887788999.0000901] 在这里插入图片描述浮点型的存储分为三部分:符号位+指数位+尾数位 在存储过程中,精度会有丢失 在这里插入图片描述

浮点型使用细节

Golang 浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响。Golang 的浮点型默认声明为float64 类型。浮点型常量有两种表示形式 十进制数形式:如:5.12 .512 (必须有小数点) 科学计数法形式:如:5.12e2 = 5.12 * 10的2次方 5.12E-2 = 5.12/10的2次方 在这里插入图片描述通常情况下,应该使用 float64 ,因为它比float32 更精确。[开发中,推荐使用float64]

处理精度方法 处理精度的几种方法:

1: float 转 decimal 类型,decimal 互乘 不会丢失精度 2: float 乘 float 后,进行四舍五入 只保留需要的位数

var refundFee, _ = strconv.ParseFloat("1129.6", 64) log.Println(refundFee) //1129.6 float类型 f1 := decimal.NewFromFloat(refundFee) log.Println(f1) //1129.6 decimal 类型 f2 := decimal.NewFromFloat(100) log.Println(f1.Mul(f2)) // 112960 decimal 类型 log.Println(refundFee * 100) //112959.99999999999 var s = Round(refundFee*100, 2) log.Println(s) // 112960 // f:需要处理的浮点数,n:要保留小数的位数 // Pow10()返回10的n次方,最后一位四舍五入,对n+1位加0.5后四舍五入 func Round(f float64, n int) float64 { n10 := math.Pow10(n) return math.Trunc((f+0.5/n10)*n10) / n10 }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3