0

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

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 进行强制转换。但它不起作用。

4

1 回答 1

0

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

printf("Packet_loss: %lf", ((double)(packet_tx-packet_rx)/(double)packet_tx)*100.0);
于 2014-03-10T13:03:07.477 回答