我正在尝试制作数学代码。但我无法做到。
double x = z + ((z * (25.7 - (((z - 400) / 30) * 1.27))) / 100);
int d = (int) Math.round(x);
例如,如果z = 910。 真正的数学结果是,x = 947.401,d = 947,但它不是这个代码。
你能帮我解决吗?
答案 0 :(得分:2)
你应该知道优先如何在编程中起作用
然后/和*
- 和
在你的问题中
此声明z + ((z * (25.7 - (((z - 400) / 30) * 1.27))) / 100)
将执行为
let z = 910
(z - 400) // result 510
then this (z - 400) / 30) // result 17
then this (((z - 400) / 30) * 1.27))) // result 21.59
then this (25.7 - (((z - 400) / 30) * 1.27)) //result 4.11
then this (25.7 - (((z - 400) / 30) * 1.27))) / 100) // result 0.2159
then this ((z * (25.7 - (((z - 400) / 30) * 1.27))) / 100) // result 37.401
then this z + ((z * (25.7 - (((z - 400) / 30) * 1.27))) / 100) // final result 947.401
然后它会将947.401
四舍五入并给你947