Невозможно преобразовать строку в целое число - PullRequest
0 голосов
/ 06 августа 2020

Я получаю строковое значение от сервера и пытаюсь преобразовать строковое значение в Integer.nut, когда я пытаюсь сделать это, отображается ошибка.

Я получаю сообщение об ошибке ниже:

java.lang.NumberFormatException: For input string: "100.00"

Ниже мой код:

String s = "100.00";

Int no = Integer.parseInt(s);

Toast.makeText(getApplicationContext(),no,Toast.LENGTH_LONG).show(); 

Кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно. Любая помощь будет принята с благодарностью.

СПАСИБО

Ответы [ 6 ]

0 голосов
/ 06 августа 2020

Пожалуйста, попробуйте этот код

    int no = (int) Float.parseFloat(s);
    Toast.makeText(getApplicationContext(),String.valueOf(no),Toast.LENGTH_LONG).show(); 
0 голосов
/ 06 августа 2020

Проблема : 100.00 технически не является целым числом, так как содержит десятичную дробь. Мы не можем напрямую преобразовать его в целое число.

Решение :

  • Преобразовать в Double

  • Преобразование Double в целое число

    int convertValue = (int) Double.parseDouble ("100.00");

0 голосов
/ 06 августа 2020

100.00 - это двойное число, а не целое число, поэтому, если вы хотите преобразовать его в двойное, как указано в других ответах

    double value = Double.parseDouble(s); 

, или если вы хотите, чтобы оно было целым числом, вы хотите выполнить приведение, подобное этому

    int no = (int) Double.parseDouble(s);
0 голосов
/ 06 августа 2020

Вам нужно преобразовать значение в double, а не в int: Исправьте это следующим образом:

String s = "100.00";

double no = Double.parseDouble(s);

Toast.makeText(getApplicationContext(),no,Toast.LENGTH_LONG).show(); 

Однако, если вы не хотите, чтобы int был просто:

int no = (int) Double.parseDouble(s);
0 голосов
/ 06 августа 2020

Здесь 100.00 содержит десятичную точку, поэтому вам нужно проанализировать как Float / Double. Вы можете использовать Double.parseDouble для анализа значения.

double value = Double.parseDouble("100.00");

И после синтаксического анализа вы также можете преобразовать его в int, но вы потеряете данные после десятичной точки.

  int res = (int) value;

Тогда вы можете использовать

Toast.makeText(getApplicationContext(),res,Toast.LENGTH_LONG).show(); 
0 голосов
/ 06 августа 2020

100.0 не целое, друг мой! И я не думаю, что Int - это тип. Вы должны либо обрезать .00, либо проанализировать Double

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...