我在看http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html
我在尝试
double b = Math.sqrt(absoluteNumber);
int c = b.intValue();
但我收到此错误:
Factorise.java:13: error: double cannot be dereferenced
int c = b.intValue();
请帮忙?
我在看http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html
我在尝试
double b = Math.sqrt(absoluteNumber);
int c = b.intValue();
但我收到此错误:
Factorise.java:13: error: double cannot be dereferenced
int c = b.intValue();
请帮忙?
double
不是对象,它是原始类型。
简单的写作(int)b
就可以完成这项工作。
如果你真的需要一个Double
对象,你需要构造一个。
double
是“原始类型”,它没有intValue()
方法(实际上它没有任何方法,因为它是原始类型)。试试Double包装类,它有一个intValue()
方法。
Double b = Math.sqrt(absoluteNumber);
int c = b.intValue();
或者简单地使用铸造:
double b = Math.sqrt(absoluteNumber);
int c = (int) b;
您可以简单地转换它:
int c = (int)b;
您的类中的特定编译时错误是尝试对声明为原始类型的值调用方法的结果。原始类型不是Object
s,因此没有属性。因此他们没有任何方法。
您可以将原始double
值转换为原始int
值,
double b = Math.sqrt(absoluteNumber) ;
int a = (int) b ;
或将其double
转换为Double
--- 使用称为自动装箱的 Java 功能--- 以便使用该类实现的接口的intValue
方法:Number
Double
double b = Math.sqrt(absoluteNumber) ;
int a = ( (Double) b ).intValue( ) ;
另一种方法是使用类的valueOf
andintValue
方法Double
:
double b = Math.sqrt(absoluteNumber) ;
int a = ( Double.valueOf(b) ).intValue( ) ;
这条简单的线将完成这项工作。
integer_var_name = (int) double_var_name;
尝试
public static void main(String[] args) {
Double b = Math.sqrt(43253);
int c = b.intValue();
System.out.println("#### S = " + c);
}
输出
#### S = 207