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

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.xdnf.cn/news/12071.html

相关文章:

  • 日志项目——日志系统框架设计
  • 卡特兰数简单介绍
  • C++初阶 | 模板
  • C#中的依赖注入Dependency Injection, DI
  • AI 如何改变软件文档生产方式?
  • 图解浏览器多进程渲染:从DNS到GPU合成的完整旅程
  • JavaScript学习笔记(五)
  • 数据预处理的几种形式(转载)
  • 如何从零开始建设一个网站?
  • 卫星在轨姿态控制技术详解:从自旋稳定到高精度闭环控制
  • Redis中的setIfAbsent方法和execute
  • #开发环境篇:postMan可以正常调通,但是浏览器里面一直报403
  • python打卡day44@浙大疏锦行
  • GAN训练困境与模型分类:损失值异常与生成判别模型差异解析
  • WES7系统深度定制全流程详解(从界面剥离到工业部署)
  • RoPE 详解:旋转位置编码的原理与实践《一》
  • 回归分析-非线性回归及岭回归.docx
  • 基于51单片机的汽车雨刮器模拟proteus仿真
  • 【Linux】Linux 环境变量
  • 408考研逐题详解:2009年第31题
  • 组合式过电压保护器安装指南
  • 第N1周:one-hot编码案例
  • 使用cursor 编辑器开发 Vue项目,配置ESlint自动修复脚本,解决代码不规范引起的报错无法运行项目问题
  • rockyLinux常用共享的服务和配置
  • JAVASE:面向对象
  • 第4章(旧)Day1 - Python小白上路
  • 路凯智行助力华润水泥长治矿区开启无人运输新场景
  • 奈氏准则/奈奎斯特定理 如何直观理解2W这个超参数,为什么偏偏就是2呢?
  • fastadmin+workman环境搭建
  • thymeleaf直接调用Spring Bean中定义的方法