Как избежать научного формата чисел, используя тип данных float в MySQL? - PullRequest
0 голосов
/ 02 ноября 2011

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

Я пытался использовать десятичный формат, но он не работал

protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) 
throws Exception{
    CustomDateEditor dateEditor = new CustomDateEditor(new format("dd/MM/yyyy"), true);
    binder.registerCustomEditor(Date.class,null, dateEditor);

    DecimalFormat decimalFormat = new DecimalFormat();
    DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    symbols.setDecimalSeparator('.');
    decimalFormat.setDecimalFormatSymbols(symbols);
    decimalFormat.setMaximumFractionDigits(2);

    binder.registerCustomEditor(Float.class, 
    new CustomNumberEditor(Float.class, decimalFormat, true));
}

Может кто-нибудь сказать, как избежать научного обозначения в float, не меняя его тип.

1 Ответ

0 голосов
/ 02 ноября 2011

Не существует «научного формата чисел с использованием числа с плавающей запятой», научная нотация применяется только тогда, когда вы (неявно или явно) меняете представление данных, скорее всего, на символьное представление.

Данные карт Hibernateхранится в базе данных в типах данных Java - он не выполняет преобразование, которое может привести к изменению представления числа в научную нотацию.

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

DecimalFormat decimalFormat = new DecimalFormat('###,###,###,###,###.0#');

Кстати, вы не должны использовать числа с плавающей запятой для значений валюты.

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