如何在Java中将double转换为int?

Eam*_*ney 5 java

我在看http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html

我在尝试

    double b = Math.sqrt(absoluteNumber);
    int c = b.intValue();
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

Factorise.java:13: error: double cannot be dereferenced
int c = b.intValue();
Run Code Online (Sandbox Code Playgroud)

请帮忙?

bma*_*ies 14

double 它不是一个对象,它是一种原始类型.

简单的写作(int)b就能完成这项工作.

如果你真的需要一个Double对象,你需要构建一个对象.


Per*_*ror 6

double是一个"原始类型",它没有一个intValue()方法(实际上它没有任何方法,因为它是一个原始方法).试试Double wrapper类,它有一个intValue()方法.

Double b = Math.sqrt(absoluteNumber);
int c = b.intValue();
Run Code Online (Sandbox Code Playgroud)

或者只是使用铸造:

double b = Math.sqrt(absoluteNumber);
int c = (int) b;
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下使用"Double"是矫枉过正,铸造会更好. (2认同)