当前位置: 首页 > 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

相关文章:

  • 前端判断内容文字是否溢出容器,创建临时元素来模拟文本实际宽度
  • thymeleaf直接调用Spring Bean中定义的方法
  • Maven 构建缓存与离线模式
  • SSM spring Bean基础配置
  • simulink这边重新第二次仿真时,直接UE5崩溃,然后simulink没有响应
  • linux 故障处置通用流程-36计+1计
  • 比较运算符:==、!=、>、<、>=、<=
  • 【C/C++】进一步介绍idl编码
  • 《动手深度学习》8.2文本预处理—代码分析
  • 运行labelme
  • java day15 (数据库)
  • Oracle实用参考(13)——Oracle for Linux静默安装(1)
  • FAST(Features from Accelerated Segment Test)角检测算法原理详解和C++代码实现
  • dvwa8——SQL Injection(Blind)
  • Hive开窗函数的进阶SQL案例
  • 使用PyQt5的图形用户界面(GUI)开发教程
  • 【hive sql】窗口函数
  • QT聊天项目DAY13
  • C# Wkhtmltopdf HTML转PDF碰到的问题
  • RDMA简介3之四种子协议对比
  • 加强网站建设说明报告范文/中国营销网官网
  • 外链 推网站怎么做/阳西网站seo
  • 网站后台模板论坛/seo具体优化流程
  • wordpress如何搭建一个购物网站/线上运营推广方案
  • 学校设计网站方案/怎么免费创建网站
  • 加工网线/中国seo公司