String 如何避免存储数据库中双值的字符串采用指数格式

String 如何避免存储数据库中双值的字符串采用指数格式,string,forms,for-loop,exponential,String,Forms,For Loop,Exponential,我有一个如下所示的类,用于使用marshaller生成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(na

我有一个如下所示的类,用于使用marshaller生成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;

}
为类中的薪资生成getter和setter

然后,我将使用下面的代码使用JAXB封送器生成xml

JAXBContext context = JAXBContext.newInstance(Example.getClass());
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(object, writer);
现在我的问题是,如果工资超过8位数,它就会变成指数形式 示例:110016400到1.100164E8 请建议我如何避免指数形式,因为我已经在使用字符串代替双精度或长列,这样即使它正在转换为指数形式,也不会转换为指数形式。请建议避免指数形式。

使用此选项 例如,从数据库中检索double值

 public double getSalary() {
    return salary;
 }

 Convert it to String

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

您能将类型更改为浮动吗<代码>每月私人浮动