Я получаю сообщение об ошибке, что не может быть преобразован из двойного в int - PullRequest
0 голосов
/ 22 сентября 2018

Это еще один вопрос новичка.Я работал над этим типом ошибок в течение последних нескольких дней и ничего не получил, поэтому пришло время спросить вас, обожающие чудеса мира Java.

Я получаю сообщение об ошибке, которого не можетбыть преобразованным из двойного в целое.

Это код, который я написал:

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

Ответы [ 4 ]

0 голосов
/ 22 сентября 2018

во-первых, вы должны использовать класс-оболочку (Double, Integer, ecc) для типа примитива (double, int, ...).

В java> 1.5 бокс и распаковка автоматические.

Double priceFirstArticle = in.nextDouble();
    int  i = priceFirstArticle.intValue();
 ........
0 голосов
/ 22 сентября 2018

Преобразование из double в int может привести к потере информации, поэтому Java не допускает ее из коробки.Если вы хотите сделать это, вам нужно четко указать это, например, приведя:

int i = (int) priceFirstArticle;
// Here-^
0 голосов
/ 22 сентября 2018

Существует много способов ...

Вы не можете просто набрать int i = priceFirstArticle;, чтобы преобразовать его в int.

Некоторые из них

Double d = new Double();
int i = d.intValue();

или

, которые вы можете использовать Math.round(double).

, но первое предпочтительнее.

0 голосов
/ 22 сентября 2018

Если вы хотите преобразовать double в int, вам нужно явно привести его

double priceFirstArticle = in.nextDouble();
int i = (int) priceFirstArticle;

или заменить double на int следующим образом:

int priceFirstArticle = in.nextInt();
int i = priceFirstArticle; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...