JAXB中的双精度数为十进制

Jur*_*tić 5 java double decimal jaxb

我使用JAXB创建XML,并且我想在标签内添加双精度标记:

@XmlElement(name = "TaxFree")
private double taxFreeValue;
Run Code Online (Sandbox Code Playgroud)

当我用setTaxFreeValue(4.5);in标签设置值时显示<TaxFree>4.5<TaxFree>

在JAXB中是否可以在<TaxFree>4.500<TaxFree>不将double转换为string的情况下得到它 ?

Evg*_*eev 5

最简单的方法是这样的

double taxFreeValue;

@XmlElement(name = "TaxFree")
private String getTaxFree() {
    return String.format("%.3f", taxFreeValue);
}
Run Code Online (Sandbox Code Playgroud)

请注意,您可以为该方法指定任意名称,并将其设置为私有,只要注释存在,JAXB 就不在乎。


bdo*_*han 4

您可以使用 anXmlAdapter将双精度值转换为所需的文本(字符串)表示形式。