compareTo 是否适用于 double 类型?
Does compareTo work with double type?
我需要制作一个使用 compareTo 的程序,但我运行遇到了一些问题。
double sides1 = 1.0;
double sides2 = 1.3;
int compared = sides1.compareTo(sides2);
我总是 运行 出现这样的错误
Cannot invoke compareTo(double) on the primitive type double
我做错了什么,我该如何解决?
double
是原始类型,而不是 class :它没有方法。您应该改用 Double
...并复习 Java 中的基础知识。不是冒犯,但问题是您需要基础知识才能高效编程。
PS : 你也可以使用静态方法 Double.compare
您不能在 double
等原始值上调用方法。但是你可以调用 Double.compare
,它会为你比较两个原始 double
。
int compared = Double.compare(sides1, sides2);
您还可以直接使用比较运算符 ==
、!=
、<
、<=
、>
来比较原始 double
值和 >=
.
原始类型不是 Java 对象,因此 compareTo 方法不存在。使用 Java Object Double 而不是原始类型:
Double sides1 = Double.valueOf(1.0);
Double sides2 = Double.valueOf(1.3);
int compared = sides1.compareTo(sides2);
编辑 - 不要认为所有 Java 对象都有 compareTo(..) 方法。 compareTo(..) 是 Comparable 接口的一部分 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html
我需要制作一个使用 compareTo 的程序,但我运行遇到了一些问题。
double sides1 = 1.0;
double sides2 = 1.3;
int compared = sides1.compareTo(sides2);
我总是 运行 出现这样的错误
Cannot invoke compareTo(double) on the primitive type double
我做错了什么,我该如何解决?
double
是原始类型,而不是 class :它没有方法。您应该改用 Double
...并复习 Java 中的基础知识。不是冒犯,但问题是您需要基础知识才能高效编程。
PS : 你也可以使用静态方法 Double.compare
您不能在 double
等原始值上调用方法。但是你可以调用 Double.compare
,它会为你比较两个原始 double
。
int compared = Double.compare(sides1, sides2);
您还可以直接使用比较运算符 ==
、!=
、<
、<=
、>
来比较原始 double
值和 >=
.
原始类型不是 Java 对象,因此 compareTo 方法不存在。使用 Java Object Double 而不是原始类型:
Double sides1 = Double.valueOf(1.0);
Double sides2 = Double.valueOf(1.3);
int compared = sides1.compareTo(sides2);
编辑 - 不要认为所有 Java 对象都有 compareTo(..) 方法。 compareTo(..) 是 Comparable 接口的一部分 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html