查BUG笔记-abs函数和fabs函数
问题
昨天遇到的一个BUG,服务器程序中间的一个数值变成了0.000000,之前都是正常的;
跟踪排查
增加日志后发现,使用的abs函数,处理了一个浮点型的数值,走了整型的abs,直接将浮点数转换成了整型;
使用fabs后,程序可以正常运行,具体为什么没有找到原因。
服务器上gcc和g++的环境没有变,之前运行都没有问题。
网上资料
1.abs在C语言中只处理整型,使用math.h文件;fabs处理浮点型数值;
2.abs在C++语言中可以支持浮点型的数值。在<stdlib.h>中追加了abs函数的重载;
3.如果在C++程序中,由于头文件关系,不慎使用了C版本的abs函数,并且输入的是一个有小数的浮点数,那么其行为就可能不符合程序员的预期了,因为在传入函数参数时,浮点数会用截断的方式转换为整数。
4.在某些编译器环境下,在不使用**using space std;**的情况下,std::abs() 和 abs()的行为有可能不同。std::abs()包括std::abs(int), std::abs(float), std::abs(long long)等,而abs()有可能只有abs(int)一种形式,导致abs(float)返回的值永远为0。
5.使用abs时使用std::abs可以解决这种情况;
![在这里插入图片描述](https://img-blog.csdnimg.cn/7e2d37189f37499c9cf2be83f5a3a377.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6buR6ICB5aaW,size_20,color_FFFFFF,t_70 =500x,g_se,x_16)
查BUG笔记-abs函数和fabs函数相关推荐
- 求绝对值函数 —— abs() 函数,fabs() 函数及其头文件
1.abs函数(推荐使用stdlib.h,C++可用cmath)的原型是: int abs(int x); 求x的绝对值,传入值x的类型是int型,返回值类型也是int型. 2.fabs(推荐使用ma ...
- python绝对值函数fabs_Python fabs() 函数
Python fabs() 函数 描述 fabs() 方法返回数字的绝对值,如math.fabs(-10) 返回10.0. 语法 以下是 fabs() 方法的语法:import math math.f ...
- C语言中abs()函数和fabs()函数以及fabsf()函数的区别
int abs(int i); //处理int类型的取绝对值 double fabs(double i); //处理double类型的取绝对值 float fabsf(float ...
- 查BUG笔记-error:there are no arguments to ‘XXX‘ that depend on a template parameter,so a declaration of
问题 error:there are no arguments to 'XXX' that depend on a template parameter,so a declaration of 'XX ...
- python fabs() 函数
Python fabs() 函数 描述 fabs() 函数返回数字的绝对值,如 math.fabs(-5) 返回 5.0. 与 abs() 函数不同的是, fabs() 函数返回的是浮点型的值. 语法 ...
- python绝对值函数fabs_Python中abs()和math.fabs()区别
描述:Python中fabs(x)方法返回x的绝对值.虽然类似于abs()函数,但是两个函数之间存在以下差异: abs()是一个内置函数,而fabs()在math模块中定义的. fabs()函数只适用 ...
- fabs函数, abs函数,labs函数
fabs函数 //该函数的功能是返回浮点数的绝对值 double fabs(double x);double fFloatRsult; // 定义实型变量 double fNumble=-1234.0 ...
- mysqlsum绝对值_MySQL_MySQL笔记之数学函数详解,绝对值函数ABS(x)和圆周率函数P - phpStudy...
MySQL笔记之数学函数详解 绝对值函数ABS(x)和圆周率函数PI() mysql> SELECT ABS(0.5), ABS(-0.5), PI(); +----------+------- ...
- 【theano-windows】学习笔记二——theano中的函数和共享参数
前言 上一篇博客中学到了theano中的变量类型,也就是dscalar.dvector之类的, 然后还有一个theano.function和eval函数, 将我们所定义的操作转换成theano可执行的 ...
最新文章
- openresty获取nginx body内容体
- 如何基于DataWorks构建数据中台?
- (1) freemarker入门实例
- 基于python的request库,模拟登录csdn博客
- Timus 1114. Boxes
- linux bc命令全称,Linux bc 命令
- RabbitMq topic
- 【转载】如何扎实的学好ABAP?我的个人经验
- 作为刚開始学习的人应该怎样来学习FPGA
- 路由器Lan、Wan短接问题
- 人脸检测(四)--CART原理及实现
- js判断IE浏览器的方法
- 计算机无法卸载软件,电脑安装的软件无法卸载怎么办?
- VUE 分享给好友及朋友圈
- 通过JS检测360浏览器
- 图解 Cisco IOS 命名规范
- 世界最著名八大发动机结构!
- 2020/5/4/ 每日一咕
- 云服务器系统esxi,云服务器安装esxi
- linux用mkefs不能进行格式化,磁盘格式化命令 mkfs
热门文章
- xmind和axure的区别
- PHP中如何获取radio的值,Jquery如何获取radio选中值的示例详解
- mim install mmdetection不成功的解决办法
- VSCode设置自定义图片作为背景
- 2022-2027年中国微型传动系统行业发展监测及投资战略研究报告
- 洗礼(BAPTISM)
- Unity Lighting设置
- 电子计算机课文五年级上册,新型玻璃(人教版语文五年级上册课文)_百度百科...
- js window.print() 打印图片,图片有时候不显示
- Typescript | 给window对象添加全局变量