java与from double to int tostring方法的比较
如何使用compareto来表示double,并将其转换为int 举个例子就好了。我一直在搜索JavaAPI 还可以将if和else语句与String-toString方法一起使用吗?由于特殊情况,我的车一直在撞车java与from double to int tostring方法的比较,java,string,compareto,Java,String,Compareto,如何使用compareto来表示double,并将其转换为int 举个例子就好了。我一直在搜索JavaAPI 还可以将if和else语句与String-toString方法一起使用吗?由于特殊情况,我的车一直在撞车 我完全不懂java我想我一直在不断地阅读来学习你可以试试这样的东西 Double d = 10.0; Integer i = 10; d.compareTo(i.doubleValue()); 或 我不知道你需要哪一个。我只能猜测你的确切要求。你应该试着把它
我完全不懂java我想我一直在不断地阅读来学习你可以试试这样的东西
Double d = 10.0;
Integer i = 10;
d.compareTo(i.doubleValue());
或
我不知道你需要哪一个。我只能猜测你的确切要求。你应该试着把它们提炼得更清楚一点 如果你想比较双打和整数,这可能很难。你有两个选择 第一:将double转换为int,然后比较
int compare(double d, int i) {
int dint = (int)d;
return Integer.compare(dint,i);
}
int compare(int i, double d) {
int dint = (int)d;
return Integer.compare(i,dint);
}
int compare(double d, int i) {
double idouble = (double)i;
return Double.compare(d,idouble);
}
int compare(int i, double d) {
double idouble = (double)i;
return Double.compare(d,idouble);
}
第二:将int转换为double,然后比较
int compare(double d, int i) {
int dint = (int)d;
return Integer.compare(dint,i);
}
int compare(int i, double d) {
int dint = (int)d;
return Integer.compare(i,dint);
}
int compare(double d, int i) {
double idouble = (double)i;
return Double.compare(d,idouble);
}
int compare(int i, double d) {
double idouble = (double)i;
return Double.compare(d,idouble);
}
您不希望转换为字符串,因为这将按字典顺序而不是数字顺序比较数字 我将把你的问题理解为,我如何为双打创建一个compareTo方法 我还认为您正在使用它来实现double的数据结构 下面是我将如何着手的。 构造数据结构时,将其构造为双对象。 Double是java.lang包中的一个内置类,用于封装Double原语 然后,java将自动将它们转换为该类型 您希望使用Double类作为数据结构的定义类型的原因是,您可以使用其内置的compareTo方法。无法使基元数据类型双重包含compareTo方法 以下是一些帮助您入门的代码,例如:
TreeMap <Double, String> myDoubleMap = new TreeMap <Double, String> (10);
for (int i = 0; i < 10; i++)
myDoubleMap.put ( Math.sqrt( 10.0 * i) , "" + i);
System.out.println(myDoubleMap);
如果要运行此示例,请确保导入java.util.TreeMap如果要将整数与双精度进行比较,则需要将整数转换为双精度。请注意,这不会反过来工作,因为int不能容纳double can的所有值:值将向下舍入
double d = 12.3;
return (int)d;
12点回来!double可以保存比int大和小的值
double d = 1.337E42
return (int)d;
返回2147483647!两者之间有许多数量级。因此,请始终将int转换为double,以防止发生这种情况
您可以使用以下代码进行比较:
int compare(double d, int i) {
return new Double(d).compareTo(new Double(i));
}
但是请记住,Double与Double不同,因为Double是一个对象,而不是一个基本类型,因此与使用Double或int相比,处理Double时会有更多的开销
至于你问题的第二部分,我真的不明白你的问题/意图是什么。请尽量澄清。你至少有3个不同的问题。你为什么不发布一些你一直在尝试的代码呢?我正在为学校做一个项目,所以我认为一般的例子会很好,因为那不是作弊。我想诚实地做我的工作,但当我寻找例子时,这些例子是很有帮助的。这是一个公平的观点,但你至少应该把你的问题表达得更清楚、更准确。一般的和模糊的、不清楚的是有区别的。假设我是一名教授,这就是我,你可能会有不同的看法,我让四名学生写一个大型程序来。。。模拟学生上课的时间安排。如果他们要求某人给我一个调度算法,我会倾向于认为这是边缘欺骗,虽然,说这是我的算法,你认为可能不是什么,这是逐案的。如果他们问我应该如何比较这两个价值观,这是一个非常非常小的系统组成部分,我会说他们是足智多谋的。YMMV和做学生,YGMV!为什么树映射会涉及到这一点?我以为OP是想弄清楚如何在数据结构中存储双基元数据类型。为此指示的错误是double不包含compareTo方法。我在帖子中指出,在结构中存储原始数据类型是不可能的。我用TreeMap作为一个简单的例子来说明TreeMap数据结构需要compareTo方法来展示如何使用自动装箱的概念向数据结构添加基本类型。不要将double转换为int,它可以也将随着精度的降低而崩溃,而且double可以保存比int大或小的值。或者以其他方式解释:一个double不能放入一个int。在一个示例输出之后:d:1.337E42,intd:2147483647,d==intd:FalseInterest-我希望int1e40抛出一个异常,而不是以最大值为上限。然而,这很容易被双精度值的检查所捕获。无论如何,这充其量只是一个猜测,因为要求非常模糊。我不确定会发生什么,所以我尝试了它。这就是结果;至于你的检查:是的,可以这样做,但我发现更好的理解是,如果不需要检查,那是可以避免的。但是,即使对于int太大或太小的值会引发异常:将double d=10.3转换为int将返回10,brea
因为另一个原因,双d=10.3似乎等于int i=10。后一个将无法正常工作。插入d=10.3和i=10。发生的情况是,d.intValue将返回10。所以你现在有效地比较了10和10,而不是10.3。@TheMorph是真的,但也有一些情况下你可能会做后者,通过阅读张贴的问题,我无法判断OP的意图与此语句相比,是一个双精度,我想把它变成一个整数