在Java中,将除数的双精度结果转换为int

在Java中,将除数的双精度结果转换为int,java,casting,Java,Casting,我想使用一个需要int的方法。这个int由一个可能作为double求解的除法确定。我需要尽可能简洁地执行此操作,我想知道我是否可以计算出该方法将双精度直接转换为int,这是否意味着没有舍入的单次截断 我必须使用数学静态方法吗? 这会给子列表的非int参数条目带来错误吗? 有人能对此提供指导吗? List<Integer> b = null; List<Integer> c = null; int size = a.size(); b.addAll(a.subList(0

我想使用一个需要int的方法。这个int由一个可能作为double求解的除法确定。我需要尽可能简洁地执行此操作,我想知道我是否可以计算出该方法将双精度直接转换为int,这是否意味着没有舍入的单次截断

我必须使用数学静态方法吗?
这会给子列表的非int参数条目带来错误吗?
有人能对此提供指导吗?

List<Integer> b = null;
List<Integer> c = null;
int size = a.size();

b.addAll(a.subList(0, size / 2)); // To hold the first half
c.addAll(a.subList(size / 2, size)); // To hold the second half [and excess]
List b=null;
列表c=空;
int size=a.size();
b、 addAll(a.子列表(0,大小/2));//举行上半场比赛
c、 addAll(a.子列表(大小/2,大小));//持有下半部分[和超额]

提前感谢您的帮助。

b.addAll有什么问题(a.subList(0,(int)(size/2))

它将双精度转换为整数,不会对其进行四舍五入,只需忽略“.”后面的所有内容

因此,如果9.8/2的除法是4.9,那么你将得到4

int x = 9.8/2;
您不需要使用数学静态方法进行除法运算,而且您给出的代码也不会出错

总之,您可以运行代码,看看结果是否符合您的要求

b.addAll(a.subList(0, size / 2));

应该毫无问题地运行

我真的不明白你的问题。您是否试图找到
size/2
的值,以便将
a
列表分成两个大小相等的子列表而不丢失任何值?我看不出该代码中的任何地方都可能有
double
size/2
永远不会返回一个
double
,因为您要除以2个整数,所以结果将是一个整数。Rohit:我正在尝试将列表拆分为两半,这样做足够灵活,以便在初始列表的大小为奇数时,后半部分可能会超出,但我对某些事情是如何工作的,以及在某些情况下是否会产生错误,并没有深入的了解。例如,如果列表大小为5,我们将得到大小为2和3的两个列表。如果这是自动循环,它对我要求显式强制转换是没有用的。
size
是一个
int
<代码>大小/2将自动为整数。无需进行打字。谢谢,我现在有了更好的理解。谢谢。这很清楚。你们说这不涉及双精度,所以我推断你们的意思是,使用运算符“/”如果两种类型都是int,结果将自动转换为int?因为我知道,5/2的数学结果是2.5,这是一个整数变量无法容纳的数字。是这样吗?当通过“/”对两个整数进行除法时,是否可以假设整数被截断?