基本数据类型-浮点类型float32和float64 和浮点运算出现精度丢失
float32和float64点
go语言支持2种浮点类型: float32和float64点
float32的取值范围
float32的取值范围在-3.4E38 到 3.4E38
就是说:3.4E38 ==>3.4 * 10的38次方
float64的取值范围
float64的取值范围
取值范围为约 -5E324至 ±1.8E308
需注意:虽然数值范围极大,但精确表示整数的上限为 2^53,超出后连续整数将无法区分
保留2/4/6位小数
%2.f: 默认保留2位小数;不足2位时后面补充0;保留2位小数时会进行四舍五入。
%4.f: 默认保留4位小数;不足4位时后面补充0;保留4位小数时会进行四舍五入。
%f: 默认保留 6 位小数;不足6位时后面补充0;保留6位小数时会进行四舍五入。浮点数格式(专用于小数)
%T输出变量类型和输出变量的值占位符
%T: 输出该变量所属的数据类型 T-----> Type
%v: 它会根据变量的类型,自动选择一种可读性强的格式输出;它会输出字段值 v--->value
输出变量值占位符
package main
import ("fmt")
// 入口函数
func main() {
pi := 3.1415
// 输出:3.1415 3.141500 类型float64
fmt.Printf("%v\n %f\n 类型%T\n",pi, pi, pi)
}
查看占用字节数 unsafe.Sizeof()
package main
import "unsafe"
import ("fmt")
// 入口函数
func main() {
pi := 3.1415
// 占用的字节数: 8
// 8个字节的话,我们知道是int64
fmt.Println("占用的字节数:", unsafe.Sizeof(pi))
}
%.2f进行四舍五入;不足2位是后面补充0
package main
import ("fmt")
// 入口函数
func main() {
pi := 3.148
// 保留2位小数;进行四舍五入;不足2位是后面补充0
fmt.Printf("%.2f\n", pi) // 输出: 3.15
}
go语言中浮点类型默认是float64
package main
import ("fmt")
// 入口函数
func main() {
pi := 3.14811
// 输出: 3.14811 类型是是float64
fmt.Printf("%v\n 类型是是%T\n", pi, pi)
// 说明go语言中浮点类型默认是float64
}
fmt.Printf的第一个参数必须是格式字符串
fmt.Printf 的第一个参数必须是格式字符串(包含 % 占位符),不能直接传一个数值。
package main
import ("fmt")
// 入口函数
func main() {
// 3.13乘以10的2次方 = 313
nun := 3.13e2
// 会报错的哈。因为第1个参数必须是格式化字符串,不能是一个数值
fmt.Printf(nun)
}
3.13乘以10的2次方=3.13e2
package main
import ("fmt")
// 入口函数
func main() {
nun := 3.13e2 // 3.13乘以10的2次方 = 313
fmt.Printf("%v",nun)
}
3.13e-2 表示 3.13 × 10⁻² = 0.0313
package main
import ("fmt")
// 入口函数
func main() {
nun := 3.13e-2
// 0.0313
fmt.Printf("%v",nun)
}
小数乘整数出现精度丢失
package main
import ("fmt")
// 入口函数
func main() {
var num float64 = 1129.6
// 输出 112959.99999999999 出现了精度丢失
fmt.Printf("%v",num*100)
}
小数相减出现精度丢失
package main
import ("fmt")
// 入口函数
func main() {
num1 := 8.2
num2 := 2.8
// 5.3999999999999995
fmt.Printf("%v", num1- num2)
}
可以使用第3方包来进行解决
go中float有精度丢失的问题
在go语言中,float中有精度丢失的问题
所以在做四则运算的时候,需要使用专门的包来解决这个问题哈。
作者:流年少年
出处:https://www.cnblogs.com/ishoulgodo/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/ishoulgodo/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。

浙公网安备 33010602011771号