我想知道为什么这段代码不能正常工作。 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/