it-swarm.com.ru

Преобразование двойного в строку

Я не уверен, что это я или что, но у меня проблемы с преобразованием двойного в строку.

вот мой код:

double total = 44;
String total2 = Double.toString(total);

Я делаю что-то не так или я пропускаю шаг здесь.

Я получаю ошибку NumberFormatException при попытке конвертировать это.

totalCost.setOnTouchListener(new OnTouchListener() {
  public boolean onTouch(View v, MotionEvent event) {
    try {
      double priceG = Double.parseDouble(priceGal.getText().toString());
      double valG = Double.parseDouble(volGal.toString());
      double total = priceG * valG;
      String tot = new Double(total).toString();
      totalCost.setText(tot);
    } catch(Exception e) {
      Log.e("text", e.toString());
    }

    return false;
  }         
});

Я пытаюсь сделать это в onTouchListener. Я опубликую больше кода, в основном, когда пользователь касается поля edittext, я хочу, чтобы информация вычисляла заполнение поля edittext.

185
Brandon Wilson
double total = 44;
String total2 = String.valueOf(total);

Это преобразует double в строку

430
Bhavit S. Sengar

Используя Double.toString (), если число слишком мало или слишком велико, вы получите научную запись, подобную этой: 3.4875546345347673E-6. Есть несколько способов лучше контролировать формат выходной строки. 

double num = 0.000074635638;
// use Double.toString()
System.out.println(Double.toString(num));
// result: 7.4635638E-5

// use String.format
System.out.println(String.format ("%f", num));
// result: 0.000075
System.out.println(String.format ("%.9f", num));
// result: 0.000074636

// use DecimalFormat
DecimalFormat decimalFormat = new DecimalFormat("#,##0.000000");
String numberAsString = decimalFormat.format(num);
System.out.println(numberAsString);
// result: 0.000075

Использование String.format () будет лучшим удобным способом. 

15
Nicholas Lu

Этот код компилируется и работает для меня. Он преобразует двойное число в строку, используя вызовы, которые вы пробовали.

public class TestDouble {

    public static void main(String[] args) {
        double total = 44;
        String total2 = Double.toString(total);

        System.out.println("Double is " + total2);
    }
}

Я озадачен, увидев исключение NumberFormatException. Посмотрите на трассировку стека. Я предполагаю, что у вас есть другой код, который вы не показываете в своем примере, который вызывает это исключение. 

14
ditkin

Исключением, вероятно, являются вызовы parseDouble (). Убедитесь, что значения, данные этой функции, действительно отражают двойное число. 

6
Stephan
double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

double priceG = Double.parseDouble(priceGal.getText().toString());

double valG = Double.parseDouble(volGal.toString());

оно работает. должен быть повторным.

3
agon

Котлин

Вы можете использовать .toString напрямую для любого типа данных в kotlin, например

val d : Double = 100.00
val string : String = d.toString()
1
Khemraj
double priceG = Double.parseDouble(priceGal.getText().toString());
double valG = Double.parseDouble(volGal.toString());

Одним из них является исключение. Вам нужно добавить журналирование/печать, чтобы увидеть, что находится в volGal и priceGal - это не то, что вы думаете. 

1
Brian Roach
double total = 44;
String total2= new Double(total).toString();

этот код работает

1
olyanren

double.toString() должен работать. Не тип переменной Double, а сама переменная double.

1
Matt F.

Как насчет того, когда вы делаете 

totalCost.setText(tot);

Вы просто делаете 

totalCost.setText( "" + total );

Где "" + <variable> автоматически преобразует его в строку

0
Francisco Azevedo

Используйте класс StringBuilder, вот так:

StringBuilder meme = new StringBuilder(" ");

// Convert and append your double variable
meme.append(String.valueOf(doubleVariable));

// Convert string builder to string
jTextField9.setText(meme.toString());

Вы получите желаемый результат.

0
abhishek sheregar

Полная информация

Вы можете использовать String.valueOf () для float, double, int, boolean и т.д.

double d = 0;
float f = 0;
int i = 0;
short i1 = 0;
char c = 0;
boolean bool = false;
char[] chars = {};
Object obj = new Object();


String.valueOf(d);
String.valueOf(i);
String.valueOf(i1);
String.valueOf(f);
String.valueOf(c);
String.valueOf(chars);
String.valueOf(bool);
String.valueOf(obj);
0
Khemraj

Просто используйте следующее:

doublevalue+""; 

Это будет работать для любого типа данных.

Пример:

Double dd=10.09;
String ss=dd+"";
0
Rahul Purohit