从毫秒转换为微秒,并以C为单位存储为double

时间:2013-10-13 02:39:39

标签: c time

您好我正在尝试将DELAY从milliSeconds转换为microSeconds并将其存储为double。但是,当我使用下面的代码时,它产生输出0.000000在计算器上,它可以作为我想要的结果,如果500是DELAY是0.500000,那么我可以将它与'struct timeval'一起使用。

#define DELAY 500
double num = (DELAY / 1000);

printf("Num: %lf",num);

3 个答案:

答案 0 :(得分:3)

此:

(DELAY / 1000);

是整数运算,当DELAY小于1000时评估为零,更改为:

(DELAY / 1000.0);

答案 1 :(得分:2)

这将使用整数除法:

 double num = (DELAY / 1000);

如果您将1000更改为浮动常量,那么您将获得所需的结果:

double num = (DELAY / 1000.0);

这是有效的,因为除法将在其操作数上执行通常的算术转换,在这种情况下将导致 DELAY 转换为 double 同样。

注意值得注意的是,如果您想将毫秒转换为微秒,您希望乘以1000而不是除以。

答案 2 :(得分:0)

它将除法作为整数进行转换

尝试:

#define DELAY 500f
double num = (DELAY / 1000f);

printf("Num: %lf",num);