首页 > 解决方案 > 用于浮点返回非预期值的 abs 函数 C

问题描述

我在使用带有浮点值的 abs() 函数时遇到问题。它在使用整数时工作得很好,但在使用浮点数时它总是只输出 1,即使它应该是 3.1 - 1.8 作为 1 出来。我正在使用数组来获取值,只是不确定发生了什么,我尝试使用晶圆厂和从浮动改为双,但没有区别。

 x_distance = abs(x_coord[0] - x_coord[1]);

D:/数据 D 驱动器/大学/Year_2/EEEE 2063/CourseWork2/test/main.c:33:18:

标签: c

解决方案


abs是为了int争论。将它与浮点参数一起使用会将值截断为整数(或溢出)。

分别使用fabsf,fabsfabsl, float,doublelong double, 。这些在<math.h>.

或者,包括<tgmath.h>(类型通用数学)并fabs与任何浮点类型一起使用。


推荐阅读