Подтвердить что ты не робот

Преобразование Java Double to String без форматирования

У меня есть номер 654987. Его идентификатор в базе данных. Я хочу преобразовать его в строку. Обычный Double.ToString(значение) делает его в научной форме, 6.54987E5. Что-то, чего я не хочу.

Другие функции форматирования. Ive found проверяет текущую локаль и добавляет соответствующие разделители тысяч и т.д. Начиная с его идентификатора, я вообще не могу принять какое-либо форматирование.

Как это сделать?

[Изменить] Чтобы уточнить: Im работает над специальной базой данных, которая обрабатывает все числовые столбцы как парные. Двойной - единственный (числовой) тип, который я могу получить из базы данных.

4b9b3361

Ответ 1

Использовать длинный:

long id = 654987;
String str = Long.toString(id);

Ответ 2

Используйте фиксированный NumberFormat (в частности DecimalFormat):

double value = getValue();
String str = new DecimalFormat("#").format(value);

альтернативно просто добавьте к int (или long, если диапазон значений слишком велик):

String str = String.valueOf((long) value);

Но опять же: почему у вас есть целочисленное значение (т.е. целое число) в переменной double, в первую очередь?

Ответ 3

Если это целочисленный id в базе данных, вместо этого используйте Integer. Затем он будет отформатирован как целое число.

Ответ 4

Как насчет String.valueOf((long)value);

Ответ 5

Как насчет:

Long.toString(value)

или

new String(value)

Ответ 6

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

double value = getValue();

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);

String strVal = f.format(value);

Ответ 7

Если то, что вы храните, является идентификатором (т.е. что-то используется только для идентификации другого объекта, фактическое числовое значение которого не имеет значения), то вы не должны использовать Double для его хранения. Точность почти наверняка приведет вас к вине.

Если ваша база данных не позволяет целочисленные значения, вы должны хранить идентификаторы в виде строк. При необходимости сделайте строку строковым представлением целого числа, которое вы хотите использовать. При правильном использовании начальных нулей вы можете сделать алфавитный порядок строки такой же, как числовой порядок цепей.

Это должно помочь вам решить эту проблему.

Ответ 8

Как насчет Long.toString((длинное) значение)?

Ответ 9

    double d = 56789;
    String s = d+"";