当前位置: 首页 > news >正文

fmod产生的误差应该如何解决?

fmod产生的误差应该如何解决?

  • 关于fmod函数的用法
  • 关于fmod函数的漏洞
    • bug是什么样的?
    • bug分析
    • 解决方案
      • 方法1
      • ~~方法2~~(方法二无法解决fmod产生的误差)

关于fmod函数的用法

可以查看如下教程:

https://www.runoob.com/cprogramming/c-function-fmod.html

就是两个flaot数进行取余,如下是我查看vs内置的函数声明:
在这里插入图片描述
但是我在菜鸟教程中,查看是double:
在这里插入图片描述
那说明float和double应该都是可以的!

关于fmod函数的漏洞

bug是什么样的?

再一次正常的开发过程中,我发现fmod(a, b)=fmod(40.0, 10.0) 返回 10.0,
当然,并不是直接给a赋值为40.0,a的值是从0一直加0.1,直到加到40.0为止.

bug分析

  • 在这个bug中 , fmod(40.0, 10.0) 返回 10.0 的结果是出乎意料的,我们期望的结果是 0.0(也就是40%10应该是0)。
    这是因为浮点数运算中的精度问题可能导致 fmod 的行为不符合预期,尤其是在处理周期性计算时。

  • 以下是对问题的分析和解决方案:

f m o d ( x , y ) fmod(x, y) fmod(x,y) 返回 x − n ∗ y x - n * y xny,其中 n 是 x / y n 是 x / y n

http://www.lqws.cn/news/137791.html

相关文章:

  • Android studio初体验
  • yoloe优化:可支持点提示进行检测分割
  • AI系统提示词:Claude 4 Opus
  • 《PyTorch Hub:解锁深度学习模型的百宝箱》
  • Linux网络socket套接字(上)(2)
  • 【Linux】线程同步
  • 如何轻松地将文件从 PC 传输到 iPhone?
  • c++ STL 仿函数和适配器(算法常用)
  • 在树莓派上添加音频输入设备的几种方法
  • Deepin 安装 Nginx
  • 【JVM】Java类加载机制
  • fastadmin+workman环境搭建
  • Rust学习(1)
  • [Java 基础]枚举
  • Linux操作系统shell脚本
  • [Java 基础]面向对象-多态
  • 关于物联网的基础知识(一)
  • 职坐标IT教育物联网全栈开发实战:传感器到云平台全链路
  • ‌RF Choke(射频扼流圈)
  • 第十三节:第二部分:集合框架:Map系列集合:概述、常用方法
  • thymeleaf直接调用Spring Bean中定义的方法
  • Python 开发效率秘籍:PyCharm、VS Code 与 Anaconda 配置与实战全解
  • 【会员专享数据】1960—2023年我国省市县三级逐年降水量数据(Shp/Excel格式)
  • UDP包大小与丢包率的关系:原理分析与优化实践
  • 解决el-cascader组件下拉选项过长,数据回显无法换行显示的问题
  • JavaScript中判断两个对象是否相同(所有属性的值是否都相同)
  • 电商接口计费标准是什么?
  • 数据“出国”需办“签证”: 如何申请数据出境安全评估?
  • 【二分图 图论】P9384 [THUPC 2023 决赛] 着色|普及+
  • Vue Router 导航方法完全指南