计算机中的浮点数和误差

计算机中的浮点数和误差

浮点数

1. float类型又被称为单精度类型,尾数精确到7位有效数组字;double表示这种类型的数值精度是float类型的两倍,又被称为双精度。默认是double,浮点数数值默认为double类型,要将其变为flaot类型,需要在后面增加F/f,如:3.14F

2.浮点数存在舍入误差,很多数字不能精确表示。

当浮点数做数学运算的时候,你经常会发现如下一些问题:

JavaScript 中:

python 中

C中

IEEE 754标准引入的浮点数算术标准简介

最高位是符号位,规定浮点数的正负;偏置指数,紧跟在符号位之后,有效数字[公式]在最后。

几乎所有的编程语言都采用了 IEEE-745 浮点数表示法,任何使用二进制浮点数的编程语言都会有这个问题,只不过在很多语言中已经封装好了方法来避免精度的问题。

以python为例:

decimal 模块为快速正确舍入的十进制浮点运算提供支持。

https://docs.python.org/zh-cn/3/library/decimal.html#module-decimal

在涉及浮点数的算法中,要注意不能直接用等号判断两个浮点数是否相等,

这里已python为例:

在Python的math中的isclose()方法用于确定两个浮点数的值是否接近, 如果值接近则返回True,否则返回False要使用此功能,您必须导入数学模块math。

语法格式:

math.isclose(a,b,rel_tol,abs_tol)

参数             说明

a                必需的参数, 检查紧密度的第一个值

b                必需的参数, 检查紧密度的第二个值

rel_tol=value    可选的。 相对公差。 它是值a和b之间的最大允许差。 默认值为1e-09

abs_tol=value    可选的。最小绝对公差。它用于比较接近0的值。该值必须至少为0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值