有人可以告诉我出了什么问题。当我输入低和高的方程式到计算器时,我得低= 118.129高= 113.629 但由于某些原因,当我运行代码时,低和高都显示为119.0。
match_FRC = 82;//Double.parseDouble(FRC_match_textbox.getText().toString());
match_DTR = 1.455;//Double.parseDouble(DTR_match_textbox.getText().toString());
//math functions
low = Math.round((match_FRC * match_DTR)/((1/100)+1));
high = Math.round((match_FRC * match_DTR)/((5/100)+1));
答案 0 :(得分:6)
您需要使用浮点常量而不是整数,例如:
low = Math.round((match_FRC * match_DTR)/((1.0 / 100)+1));
实际上,((1 / 100) + 1)
是一个整数表达式,其计算结果恰好为1。
将1
转换为1.0
(或100
转换为100.0
)将导致其他操作数(以及整个表达式)升级为浮点数。
答案 1 :(得分:0)
我像数学一样简单!
5/100 (Integer) = 0
0 + 1 = 1
82*1.455 = 119.31
119.31 / 1 = 119.31
round ( 119.31 ) = 119
只需将100更改为100.0
low = Math.round((match_FRC * match_DTR)/((1/100.0)+1));
high = Math.round((match_FRC * match_DTR)/((5/100.0)+1));
答案 2 :(得分:0)
您是否在计算器中输入Math.round()
?
Math.round()
发送long
,没有小数部分。因此,low
包含一个分数部分的期望没有基础。