这是我解释问题的代码的一部分:
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的双重转换。但不起作用。
发布于 2014-03-10 13:03:07
除了转换为double之外,您还需要在%lf中使用printf()中的double格式说明符。
printf("Packet_loss: %lf", ((double)(packet_tx-packet_rx)/(double)packet_tx)*100.0);https://stackoverflow.com/questions/21063361
复制相似问题