0

我正在尝试显示结果,但它只是返回 0,即使您计算答案它不是零,但在零之后需要更多小数点

编码 :

                long transferRate = ((len*2) / durationseconds ) ; //amount of data in bytes transferred in 1 second. Currently returning 0 for every result
                System.out.println("transferRate: " + transferRate + " bytes per second");

是我需要返回许多小数位的答案的部分,我该如何指定?

因为目前它正在显示结果:

Time for the ping to be sent and recived of 2 bytes is 365636931 seconds
transferRate: 0 bytes per second
Time for the ping to be sent and recived of 4 bytes is 43375591 seconds
transferRate: 0 bytes per second
Time for the ping to be sent and recived of 8 bytes is 51079641 seconds
transferRate: 0 bytes per second
Time for the ping to be sent and recived of 16 bytes is 54751211 seconds
transferRate: 0 bytes per second
Time for the ping to be sent and recived of 32 bytes is 57195731 seconds
transferRate: 0 bytes per second
Time for the ping to be sent and recived of 64 bytes is 48524461 seconds
transferRate: 0 bytes per second
Time for the ping to be sent and recived of 128 bytes is 51243251 seconds
transferRate: 0 bytes per second

谢谢

4

1 回答 1

3
long transferRate = ((len*2) / durationseconds ) ;

您不能将小数存储在long. 尝试:

double transferRate = ((len*2) / (double) durationseconds ) ;

您必须将其中一个操作数转换为 a double,否则无论如何您仍将进行整数除法。

例如,1 / 2将评估为0。然而,1 / 2.00.5

于 2013-04-13T22:29:14.117 回答