检查double是零的时间

时间:2017-05-27 20:05:49

标签: c

我有一个简单的问题。它相当简单,但我很困惑。我正在使用终端在C中创建一个计时器。我正在使用SIGALRM发送减去SUBTRACT_CONST值的信号。我假设有25个TICKS_PER_SECOND或1/25,这是0.0400我的减法常数。我已经安装了信号处理程序和计时器来关闭itimer结构中设置的每40000us。但是,在我的一个职能中,我不能抓住"当时间变为零。当此TICK_PER_SECOND值为32或16时,它按预期工作。我的比较似乎没有捕获这些不同的滴答时间。我的时间变量保持这个值被减去是一个双倍。

  if(TIME == 0) //my very simple comparison

1 个答案:

答案 0 :(得分:1)

如果您使用定时器的浮点数,那么可能唯一的方法是使用如下条件:

if(abs(TIME) < number )... 

其中number是非常小的值,如e-9,而不是几乎为零。