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

Why calculation in android with in php different?

我在 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 的给定值?

提前致谢。

您需要将所有小数的 return 值转换为双精度或浮点数,以获得所有小数。它默认为整数,这意味着您丢失了一些数据。

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

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