Java 无法将double转换为整数
我有以下代码Java 无法将double转换为整数,java,int,double,Java,Int,Double,我有以下代码 public ItemData findItem(Object searchterm) { if (searchterm instanceof Number) { int type = (int)((double) searchterm); return GETXmlParse.itemMap2.get(type); } return GETXmlParse.itemMap.get(searchterm.toString().
public ItemData findItem(Object searchterm) {
if (searchterm instanceof Number) {
int type = (int)((double) searchterm);
return GETXmlParse.itemMap2.get(type);
}
return GETXmlParse.itemMap.get(searchterm.toString().toUpperCase());
}
执行代码时,它会在以下位置抛出错误:int type=(int)((double)searchterm),表示双精度不能转换为整数
有没有办法把double转换成int
public class abc {
public static void main(String[] args) throws Exception {
double a = 101.55;
int i= (int)a;
System.out.println(i);
}
}
试试这个。你只知道它是一个数字,所以你必须把它转换成一个数字
if (searchterm instanceof Number) {
int type = ((Number) searchterm).intValue();
您也可以使用Number.intValue()或Number.doubleValue()“将double转换为int”是什么意思?截断使聚集向下舍入?为什么要将double转换为int?f、 e.值3,4将表示为整数3。为什么要先将某些内容转换为double,然后再转换为int?searchterm的类别是什么?我试图用Double searchterm重现您的问题,转换总是毫无例外地工作。JLS将从Double到int的转换定义为.public ItemData findItem(Double searchterm){if(searchterm instanceof Number){int type=(int)((Double)searchterm);返回GETXmlParse.itemMap2.get(type);}返回GETXmlParse.itemMap.get(searchterm.toString().toUpperCase());}