在JAVA中划分很长并转换为双倍

时间:2015-07-07 12:01:12

标签: java

拥有这段代码

System.out.println (routeSummary);

long ms = (Long)routeSummary.get("total_distance");

System.out.println (ms);

double kms = (ms / 1000);

System.out.println (kms);

ms = 19283kms = 19.0 ???不应该是19.283 ??

4 个答案:

答案 0 :(得分:2)

试试这个:

double kms = (ms / 1000.0);

答案 1 :(得分:0)

替换double kms = (ms / 1000);
double kms = (ms / 1000.00);

原因 ms为long,1000为int,因此在划分时,小数部分将被截断 所以要么使1000.00或1000.0或1000.000投两倍像(双)1000

output

答案 2 :(得分:0)

您需要对变量进行类型转换。划分两个长的将导致长。你可以用这个:

double kms = (double)ms / 1000.0;

答案 3 :(得分:0)

确保您正在计算的其中一个变量具有所需的结果类型,至少是一个浮点。

double kms = ((double) ms / 1000);

double kms = ( ms / (double) 1000);

double t = 1000;
double kms = ms / t;