我编写的这段代码将转换double
为int
获取异常。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot cast from Double to int
这是我的代码
Double d = 10.9;
int i = (int)(d);
Double
是基元之上的 包装 类double
。可以将其强制转换为double
,但不能直接强制转换为int
。
如果使用double
代替Double
,它将编译:
double d = 10.9;
int i = (int)(d);
您也可以double
在中间添加演员表,如下所示:
int i = (int)((double)d);
问题内容: 我正在实现一个接口,该接口的功能类似于可以包含某种对象的表的功能。该接口指定以下功能: 在我的实现中,我感到很困惑的是,我将表数据存储在2D 数组()中。当我需要返回值时,我想执行以下操作(假定只在包含double的列上调用,因此将没有): 但是- Java不允许强制转换为。将其强制转换为可以,因为它是一个对象,而不是基元,但是我的接口指定数据将以形式返回。 所以我有两个问题: 有什么
问题内容: 当我尝试将double数组转换为Double arrayList时,出现以下错误: 线程“主”中的异常java.lang.ClassCastException:[无法将D强制转换为java.lang.Double 下面是我的代码。 我正在将此列表与另一个列表进行比较,并将结果分配给另一个double变量。 请让我知道此错误的原因。 问题答案: las,不适用于原语。Apache com
问题内容: 因此,我有一个方法,其中包含3种不同类型的参数: ,和。因此,想法是使用泛型来最小化接口 但是我已经意识到,是在运行时,and 参数实际上会使那失败。这是有道理的,这只是我的一厢情愿。 但是,如果我尝试将a强制转换为双精度,编译器将吠叫: 无法使用参数’(T)’调用类型’Double’的初始化程序 我认为这也是有道理的,因为没有Double的初始化程序需要Generic。 因此,看起来
问题内容: 无论如何,有什么可以将价值转换为价值? 我尝试投射它,但是没有用。 问题答案: BigInteger用于保存任意精度的整数,而不是小数。您可以使用该类来容纳双人间。 通常,您不能将Java原语类型转换为另一个类。我知道的例外是扩展类,例如和包装器类,它们允许您将int值转换为Integer,依此类推。
问题内容: 所以我的问题是:为什么不执行编译错误? 问题答案: 四种情况中的三种正确报告了错误。复合分配是该规则的唯一例外。Java语言规范,第15.26.2部分,解释了以下原因: 15.26.2复合赋值运算符 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 例如,以下代码是正确的: 并导致x的值为7,因为它等效于: 如您所见,通过隐式插入强制类型转换可以避免该错误。
问题内容: 我正在尝试将字符串转换为,但是得到了。 我的字串是,现在我将其转换为我所拥有的任何一个。 我如何将其转换为它们中的任何一个。 请帮助我摆脱这个问题。 问题答案: 您必须为数字使用适当的语言环境,例如 版画