Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当部分结果小于1时,将两个整数除以的nesC错误_C_Printf_Tinyos_Nesc - Fatal编程技术网

当部分结果小于1时,将两个整数除以的nesC错误

当部分结果小于1时,将两个整数除以的nesC错误,c,printf,tinyos,nesc,C,Printf,Tinyos,Nesc,这是我的代码的一部分,用于解释我的问题: int64_t packet_tx=3; int64_t packet_rx=5; int64_t packet_loss; printf("Packet_loss: %d",((packet_tx-packet_rx)/packet_tx)*100); 在此代码中,数据包_tx>=数据包_rx 结果是整数,但中间结果不是整数。 我如何解决我的问题?在除法之前,我尝试使用var数据包_tx和数据包_rx的两倍进行cast。 但是它不起作用。除了强制转

这是我的代码的一部分,用于解释我的问题:

int64_t packet_tx=3;
int64_t packet_rx=5;
int64_t packet_loss;

printf("Packet_loss: %d",((packet_tx-packet_rx)/packet_tx)*100);
在此代码中,数据包_tx>=数据包_rx

结果是整数,但中间结果不是整数。 我如何解决我的问题?在除法之前,我尝试使用var数据包_tx和数据包_rx的两倍进行cast。
但是它不起作用。

除了强制转换为double之外,还需要在
printf()
中使用double的格式说明符
%lf

printf("Packet_loss: %lf", ((double)(packet_tx-packet_rx)/(double)packet_tx)*100.0);