go big.int 转float_Go自学之入门系列三数据类型(浮点、布尔)

浮点

  1. go语言中提供了两种浮点型
  • float32 --用32位(4个字节)来存储
  • float64 --用64位(8个字节)来存储

float计算是非精确的

        v1:=0.1
	v2:=0.2
	result:=v1+v2
	fmt.Println(result)//0.30000000000000004

	v3:=0.2
	v4:=0.3
	result1:=v3+v4
	fmt.Println(result1)//0.5

2.float底层原理

第一步:浮点型转换为二进制

例如:0.3

  • 整数部分直接转换 ,二进制位0
  • 小数部分,乘以2,如果小于1,则继续乘以2,如果大于1,则减去1,在乘以2,直到结果为1为止。也有可能循环下去,得到每个值得整数部分拼接起来就是小数部分,二级制位:010011 (或者传统方式,除2取余,倒叙排列得的二进制)
0.3 * 2 = 0.6
0.6 * 2 = 1.2 (减去1,还剩0.2)
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6 (减去1,还剩0.6)
0.6 * 2 =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值