2015-11-16 3 views
0

У меня есть класс, как показано ниже, из которых используются для генерации XML с помощью маршаллераКак избежать экспоненциального формата строки, которые хранят двойные значения из базы данных

У меня есть столбец с плавающей точкой базы данных 126 байт, которые хранят большие числовые значения

Например: Зарплата ПОПЛАВКОВЫЙ (126)

В классе я быть_наст отображения, как показано ниже

@NamedQuery(name = "example", query = "SELECT test FROM example test WHERE (test.xmlGenerate IS NULL OR NOT test.xmlGenerate = 'Y')") 

public class Example { 

@Column(name = "SALARY")  
private String monthlySalary; 

} 

Генерируемых геттеры и инкубатор s на зарплату в классе

Тогда я буду генерировать XML с помощью JAXB маршаллера используя код ниже

JAXBContext context = JAXBContext.newInstance(Example.getClass()); 
Marshaller m = context.createMarshaller(); 
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); 
m.marshal(object, writer); 

Теперь моя проблема в том случае, если зарплата имеющая более 8 цифр, он становится генерироваться экспоненциальным form Пример: 110016400 до 1.100164E8 Просьба предложить на этом, как я могу избежать экспоненциальной формы, потому что уже использую строку вместо двойного или длинного столбца, чтобы она не была преобразована в экспоненциальную форму, хотя она преобразуется в экспоненциальная форма. Пожалуйста, предложите это, чтобы избежать экспоненциальной формы.

+0

Вы можете изменить тип в 'float'? 'private float monthSalary;' – doublesharp

ответ

0

Используйте этот Получить значение из БД, как двойной, скажем

public double getSalary() { 
    return salary; 
} 

Convert it to String 

BigDecimal.valueOf(getSalary()).toPlainString();