您好我正在尝试将DELAY从milliSeconds转换为microSeconds并将其存储为double。但是,当我使用下面的代码时,它产生输出0.000000在计算器上,它可以作为我想要的结果,如果500是DELAY是0.500000,那么我可以将它与'struct timeval'一起使用。
#define DELAY 500
double num = (DELAY / 1000);
printf("Num: %lf",num);
答案 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);