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

StackOverflow https://stackoverflow.com/questions/1631091

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

Использовать долго:

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

Другие советы

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

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

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

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

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

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

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

Как насчет:

Long.toString(value)

или

new String(value)

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

double value = getValue();

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

String strVal = f.format(value);

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

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

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

А как насчет значения Long.toString ((long))?

    double d = 56789;
    String s = d+"";
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top