相关疑难解决方法(0)

为什么1/0给出错误但1/0.0返回"Inf"?

我只是好奇这个:

1/0在Java中进行评估时,会发生以下异常:

线程"main"中的异常java.lang.ArithmeticException:/在Foo.main中为零(Foo.java:3)

但是1/0.0被评估为Infinity.

public class Foo {
    public static void main (String[] args) {
        System.out.println(1/0.0);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

java double int

28
推荐指数
2
解决办法
2万
查看次数

除以0时为什么RuntimeException不起作用?

我想知道为什么这段代码在没有Throwing的情况下执行RuntimeException(完全是ArithmethicException):

码:

public class Proba {
    public static void main(String[] args) {
        Double d = new Double(5.0);
        try {
            d = d / 0;
        } catch (Exception e) {
            System.out.println("Error division by zero!");
        }
        System.out.println("d = " + d);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

d = Infinity
Run Code Online (Sandbox Code Playgroud)

我想知道它是怎么回事.

我的java版本是:

C:\Documents and Settings\Admintemp>java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
  • 为什么在Java上可以实现这种行为?

java exception

4
推荐指数
1
解决办法
1260
查看次数

为什么除以零导致9.223372E + 18?

我正在制作一个Android计算器,当我除以零时,我得到9.223372E + 18.为什么不显示NaN或崩溃?我认为它导致9.223372E + 18,因为这是最大可能的双值,因为我除以零并使用双数据类型.由于它会让用户感到困惑,我该如何解决这个问题呢?


回应评论

大家好,感谢您的所有回复.我很感激.我在下面发布了我的代码.

public class CFM extends ActionBarActivity {
Double cfm, ac, volume;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cfm);

            EditText e1 = (EditText) findViewById(R.id.editText1);
            EditText e2 = (EditText) findViewById(R.id.editText2);
            TextView t1 = (TextView) findViewById(R.id.editText3);
            t1.setEnabled(false);
            t1.setFocusable(false);

            e1.addTextChangedListener(new TextWatcher() {

                public void afterTextChanged(Editable s) {
                }

                public void beforeTextChanged(CharSequence s, int start,
                                              int count, int after) {
                }

                public void onTextChanged(CharSequence s, int start,
                                          int before, int count) {
                    EditText e1 = (EditText)findViewById(R.id.editText1);
                    EditText e2 …
Run Code Online (Sandbox Code Playgroud)

java double android

1
推荐指数
1
解决办法
373
查看次数

标签 统计

java ×3

double ×2

android ×1

exception ×1

int ×1