浮点数在计算机中的储存原理

浮点数在计算机中的储存原理

浮点数的种类
·Double
·Float
Double和Float的区别主要在于精度的不同,Float占用计算机内存的4个Byte,而Double占用计算机内存的8个Byte,这使得两者之间各有千秋。Double比Float更为精确,因为它占用了两倍Float内存,但是也正因为这个原因,Double的运行要比Float慢得多。

浮点数的误差来源

浮点数比如用64位,8个Byte储存一个实数,那么计算机会用1位来表示符号,52位存储尾数,也就是实数小数点前的数,11位存储指数,也就是实数小数点后的数,注意了,计算机是二进制的,因而小数点后的数字要精确的话都必须是2的11次方分之一的倍数,不然的话,计算机会一直去除,当输出精度不够时,看似结果正确,实则这里是计算机自动四舍五入的结果,当你指定计算机输出精度够高时,计算机便会出错。

Example

例子

比如我这里设置一个浮点数Double x,我输入的值时0.45,但是0.45并不是2的十一次方分之一的整数倍,因此计算机只能不断的趋近,而此时我设定输出11位小数,这时候输出的精度没有达到计算机误差的精度,因为输出的值看似正确,实则看左下角变量栏,该输出值实际已经不等于0.45了,这是由二进制原理和浮点数的储存机制决定的。

查阅资料:CSDN论坛
计算机科学概论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值