为什么Android中的计算与php不同?

时间:2017-07-14 11:11:55

标签: php android calculator

我在android中的计算有问题,我正在进行计算

  

((1 *((1 +((0.025 * 12)*((6-1)/ 12)))/ 6);

在php中生成值

echo ((1*(1+((0.025*12)*((6-1)/12))))/6);

结果:

  

0.1875

但是在android:

System.out.println(((1*(1+((0.025*12)*((6-1)/12))))/6));

结果:

  

0.16666666666666666

我已经尝试了对小数值进行四舍五入的所有操作,但结果却不同。 我如何进行精确计算才能调整到php的给定值?

提前谢谢。

1 个答案:

答案 0 :(得分:6)

您需要将所有十进制数的返回值强制转换为double或float,以获取所有小数。它默认为整数,这意味着你丢失了一些数据。

double d =(((1 *(1 +((0.025 * 12)*((double)(6 - 1)/ 12))))/ 6));
给出1.875

double f =(((1 *((1 +((0.025 * 12)*((6 - 1)/ 12))))/ 6));
给出1.666666666