这是解释我问题的代码的一部分:
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);
此代码中 packet_tx> = packet_rx ;
结果是整数,但中间结果不是整数。 我该如何解决我的问题?在分割之前,我尝试使用var packet_tx和packet_rx的两倍进行强制转换。 但它不起作用。
答案 0 :(得分:0)
除了强制转换为double之外,还需要在%lf
中使用double printf()
的格式说明符。
printf("Packet_loss: %lf", ((double)(packet_tx-packet_rx)/(double)packet_tx)*100.0);