Gson:将双精度值格式化为4位小数

fnx2tebb  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(181)

我怎样才能使Gson格式的双精度值四舍五入(或截断)到4个小数位?

q9yhzks0

q9yhzks01#

想通了.可以用一个类型适配器:

GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Double.class, (JsonSerializer<Double>) (src, typeOfSrc, context) -> {
    DecimalFormat df = new DecimalFormat("#.####");
    df.setRoundingMode(RoundingMode.CEILING);
    return new JsonPrimitive(Double.parseDouble(df.format(src)));
});
Gson gson = builder.create();
eivgtgni

eivgtgni2#

如果您在**Kotlin * a中尝试此操作,Aman的答案仍然有效,但您必须使用类型标记,而不是Double.class(或Double::class.java):

builder.registerTypeAdapter(object: TypeToken<Double>() {}.type, ...

相关问题