为什么计算机对浮点型数字计算存在误差

这篇具有很好参考价值的文章主要介绍了为什么计算机对浮点型数字计算存在误差。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么计算机对浮点型数字计算存在误差?

我们输入的十进制小数在计算机中都是以二进制进行存储。比如:

我们把0.25转换为二进制
0.25 * 2 = 0.5  取0
0.50 * 2 = 1.0  取1
所以十进制0.25的二进制应当为0.01

但是我们把0.3转换为二进制存储
0.3 * 2 = 0.6   取0
0.6 * 2 = 1.2   取1
0.2 * 2 = 0.4   取0
0.4 * 2 = 0.8   取0
0.8 * 2 = 1.6   取1
0.6 * 2 = 1.2   取1
0.2 * 2 = 0.4   取0
......
所以十进制0.3的转为二进制应当为0.01001100110011的无限循环小数。

由此可见0.3在计算机中存储的值永远小于0.3,所以当使用0.3计算时,就会产生误差。

在计算机中浮点型不能直接使用等号比较也是同一个道理。举个李子:

#include<stdio.h>
void comp(double a, double b){
    printf("两个数:a = %g, b = %g 开始比较\n", a, b);
    if(a == b){
        printf("a equal b\n");
    }
    else{
        printf("a not equal b\n");
        printf("a - b = %g\n", a - b);
    }
}
int main(){
    comp(0.25 + 0.25 + 0.25 + 0.25, 1.0);
    comp(0.3 + 0.3, 0.6);
    comp(0.3 + 0.3 + 0.3 + 0.1, 1);
    return 0;
}

执行结果:

为什么计算机对浮点型数字计算存在误差

可以看出当涉及到0.3的运算超出一定的精度后,就会计算错误。

这就是为什么浮点型运算在计算机中会存在误差的原因。文章来源地址https://www.toymoban.com/news/detail-410905.html

到了这里,关于为什么计算机对浮点型数字计算存在误差的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【为什么计算机老师不转行做薪资更高的程序员工作?】

    至于为什么一些计算机老师没有选择从事薪资更高的程序员工作,有很多原因。首先,人们的职业选择因素多样化,不仅仅取决于薪资。有些老师可能对教学工作有着浓厚的兴趣,并享受与学生交流和知识传授的过程。其次,不同的人对工作环境和工作内容有不同的偏好。有

    2024年02月09日
    浏览(48)
  • 【Java se】为什么大部分小数在计算机中是不精确的

    目录 目录 一、什么是小数 二、浮点数在计算机中的转换规则 (1)整数部分转换步骤 (2) 小数部分转换步骤 三、使用代码说明 四、手动转换小数 五、解决办法         在计算机中,也称小数为浮点数,因为在使用科学计数法时,数字的小数点是可以“浮动”的。    

    2024年02月08日
    浏览(60)
  • 因为计算机中丢失VCRUNTIME140怎么办?为什么会丢失VCRUNTIME140.dll

    vcruntime140.dll是一个Windows动态链接库,其主要功能是为C/C++编译的程序提供运行时支持。这个库在Microsoft Visual Studio 2015中被引入,其名称中的“140”代表版本号。在我们打开运行软件或者游戏程序的时候,电脑提示因为计算机中丢失VCRUNTIME140无法运行怎么办呢?下面小编就把

    2024年02月10日
    浏览(76)
  • 每天五分钟计算机视觉:为什么说1*1的卷积核是全连接神经网络?

    上一节课程中我们对1*1的卷积核进行了介绍,他可以降低或者升高输入的通道数,或者增加复杂度。除此之外,1*1的卷积核的效果类似于全连接神经网络,但是并不能完全等价,本节课程我们来详细的看一下,1*1的卷积核和全连接神经网络之间的关系是什么? 如上图所示,假

    2024年02月03日
    浏览(56)
  • 什么是数字化?企业为什么要数字化转型?

    什么是数字化?企业为什么要数字化转型? 深度长文,4000+字,融合了很多 国内外专业期刊观点 ,一文讲清到底什么是企业数字化转型?心急的小伙伴可以先看目录: 关于定义—— 到底什么是“数字化转型” ? 关于价值—— 数字化转型对企业到底有多重要 ? 关于框架—

    2023年04月23日
    浏览(70)
  • 建筑行业为什么要数字化转型?

    建筑行业为什么要数字化转型? 建筑行业作为国民经济的重要支柱产业之一,其 生产过程繁琐、复杂,且产业链条长,涉及众多领域 。 然而,目前传统的建筑模式已经无法适应行业的发展需求, 建筑行业的数字化转型已经成为必然趋势 。 数字化转型是指 企业或组织通过

    2023年04月21日
    浏览(46)
  • 为什么数字化时代需要 BizDevOps?

    随着云原生、元宇宙、Web3等技术拉开序幕,智能制造、智慧城市、精准医疗等应用场景徐徐展开,继人类工业文明之后,下一个大变局的奇点临近。 毫无疑问,以数字技术应用为主线的数字化转型是此次人类文明变革的核心动力。在这一变革过程中,技术与业务的关系正发

    2024年02月11日
    浏览(59)
  • 为什么数字化转型,必须是“一把手”工程?

    随着数字技术的不断发展,数字化转型已成为各行各业中不可或缺的一部分。企业需要利用数字技术来提高效率、降低成本、增强竞争力。然而,数字化转型并不是一项简单的任务,它需要领导层的积极参与和全力支持,因此“一把手”工程成为了数字化转型的必要条件。

    2023年04月08日
    浏览(44)
  • 《让云落地 云计算服务模式》第一章 [为什么是云计算,为什么是现在] 学习

    “时间会带来标准和最佳实践” 1.云计算的由来 云计算是从中央主机时代,向个人计算机时代诞生带来的分布式主从架构时代,以及企业能够通过覆盖全球的计算机网络联系世界的互联网时代的自然发展。 每一次新的技术革命都会伴随着阻力。早期的试用者和风险承受者会

    2024年04月28日
    浏览(46)
  • 如何对宏进行数字签名,为什么它很重要

    宏是现代计算机用户可用的最强大的工具之一,但它们也带有独特的风险。了解如何以数字方式对宏进行签名,对于确保可以安全可靠地使用宏非常重要。数字签名可确保宏代码来自可信来源,并且自创建以来未被修改过。 在本指南中,我们将解释如何对宏进行数字签名,以

    2024年02月07日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包