这是另一个新手问题。在过去的几天里,我一直在处理这种类型的错误,但是却一无所获,所以现在该问您一个Java世界的奇观吧。
我得到一个错误,即无法从double转换为int。
这是我编写的代码:
out.printf("Enter the price of the first article:");
double priceFirstArticle = in.nextDouble();
int i = priceFirstArticle; //ERROR*****//
out.printf("Enter the price of the second article:");
double priceSecondArticle = in.nextDouble();
int s = priceSecondArticle; //ERROR*****//
out.printf("Enter the price of the third article:");
double priceThirdArticle = in.nextDouble();
int t = priceThirdArticle; //ERROR*****//
如何解决此错误?
谢谢您的帮助,
Northwill
答案 0 :(得分:1)
如果要将double
转换为int
,则需要显式转换
double priceFirstArticle = in.nextDouble();
int i = (int) priceFirstArticle;
或将double更改为int,如下所示:
int priceFirstArticle = in.nextInt();
int i = priceFirstArticle;
答案 1 :(得分:0)
从double
到int
的转换可能会丢失信息,因此Java不允许立即使用它。如果要执行此操作,则需要对此进行明确说明,例如通过强制转换:
int i = (int) priceFirstArticle;
// Here-^
答案 2 :(得分:0)
还有很多方法...
您不能只输入int i = priceFirstArticle;
即可将其转换为int
。
其中一些是
Double d = new Double();
int i = d.intValue();
或
您可以使用Math.round(double)
。
,但第一个更可取。
答案 3 :(得分:-1)
首先,必须对原始类型(double,int,...)使用包装器类(Double,Integer,ecc)。
在Java中> 1.5装箱和拆箱是自动的。
Double priceFirstArticle = in.nextDouble();
int i = priceFirstArticle.intValue();
........