我有一个非常奇怪的问题...我正在开发一个处理数学的应用程序...我的应用程序的一部分是用户将输入一个以度为单位的角度..因此该应用程序将计算出这个的正弦角度和预成型一些方程式...问题是当我使用to.Radian()方法将用户输入我的应用程序的角度转换为正确安装在我的android上的角度时,但是当我单击负责计算应用程序的按钮时,该应用程序崩溃了...当我删除to.Radian方法时,我的应用程序工作正常,但确实会给出错误的结果... 这是我的Java代码:
<div class="wrapper">
<input type="range" min="1" data-whatever="size" max="800" value="50" id="sliderSize">
<em>50</em>
<span>Size</span>
<br>
<input type="range" min="1" data-whatever="OriginY" max="800" value="50" id="sliderOriginY">
<em>50</em>
<span>OriginY</span>
<br>
<input type="range" min="1" data-whatever="OriginX" max="800" value="50" id="sliderOriginX">
<em>50</em>
<span>OriginX</span>
</div>
这是我的崩溃日志:
EditText faiEditText = findViewById(R.id.fai);
double fai = Double.parseDouble(String.valueOf(faiEditText.getText()));
double sinFai = Math.sin(Math.toRadians(fai));
double K = (1 - sinFai) / (1 + sinFai);
答案 0 :(得分:0)
我试过了您的代码,直到您传递错误的数据之前,它都可以正常工作,最好检查来自editText的数据,或者最好是在下拉菜单或列表中使用一定范围的值进行检查,因此可能是因为有时键盘在键入后会增加空间,因此可以将toString()与trim()结合使用,并在Try和Catch异常周围进行环绕。
try {
double fai = Double.parseDouble(String.valueOf(faiEditText.getText().toString().trim()));
double sinFai = Math.sin(Math.toRadians(fai));
double K = (1 - sinFai) / (1 + sinFai);
Log.e("sinFai", K + "");
}catch (Exception e){
//better to use the right Exception for Math or Radians
e.printStackTrace();
}