c - 下面这段代码有错误

标签 c

我想知道为什么这段代码不能正常工作。 Rms 是通过某些处理计算出的值,结果为 0.000146,我想看到测试通过的结果,但测试失败。有什么问题吗?有什么建议吗?

 If(rms <0.001){
    return Test_PASSED
    }
    else{
    return Test_FAILED
    }

Test_PASSED 和 TEST_FAILED 是一个枚举,定义如下:

//!可能的测试结果 typedef enum

{

Test_PASSED = 0, //!< passed

Test_FAILED = -1 //!< failed

} Test_Result_e;

最佳答案

您必须在 float 常量后加上 f 后缀。我假设您的变量 rms 的类型为 float。因为,常量 0.001 将隐式具有 double 类型精度。

如果我是正确的,以下应该可以工作。

   if(rms <0.001f){
    return TestPassed
    }
    else{
    return testFailed
    }

关于c - 下面这段代码有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047460/

相关文章:

c - 3D 数组内存分配中的 Segmentation Fault 错误

c - 使用指针的 3d 数组

C 包装程序调用 Fortran 函数

C 最佳函数,用于在小于、等于和大于某个值的元素上分割数组

c - Gstreamer gst_event_new_seek 起止位置

python - Py_initialize/Py_Finalize 不能与 numpy 一起工作两次

c - printf函数会影响变量的生命周期吗?

c - mbind 返回 EINVAL

c++ - 在 C++ 或 C 中存储大数字

C 套接字 : recv(. ..) 未返回正确的字节