当部分结果小于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);