【发布时间】:2017-04-28 14:52:22
【问题描述】:
所以我试图转换这个方程:[10^(((level + 7)/2)^0.5)] - 100;
我执行以下代码:
float A = (level + 7)/2;
float B = (float) Math.pow(A,0.5);
float totalExp = (float) ((Math.pow(10,B))-100);
如果我为关卡输入2,我应该返回 32.22706056。但是 Math.pow(A,0.5) 给我返回一个 double,所以如果 level = 2,那么 A = 4.5,但我得到的是 4.0,同样 Math.pow(4.5,0.5) 给我返回一个 double,没有十进制数并抛出我所有的计算。希望有人可以在这里提供帮助!
干杯!
【问题讨论】:
-
双精度表示双精度浮点
-
啊,我明白了。所以如果我想取回十进制值,比如 4.5 而不是 4.0,我该怎么做?
-
level是int吗?如果是,那么你正在做整数算术。确保在进行计算之前转换为浮点数。例如通过这样做:float A = (level + 7.0f) / 2.0f;