to.Radian方法导致我的应用崩溃..我不知道为什么?

时间:2018-11-29 03:13:06

标签: java android android-studio math

我有一个非常奇怪的问题...我正在开发一个处理数学的应用程序...我的应用程序的一部分是用户将输入一个以度为单位的角度..因此该应用程序将计算出这个的正弦角度和预成型一些方程式...问题是当我使用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);

1 个答案:

答案 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();
                   }