我在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的给定值?
提前谢谢。
答案 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