使用 Gson 将指数值转换为 BigDecimal 或 Long

converting exponential value to BigDecimal or Long using Gson

我有一个 Java API,其中输入通常有十进制值。但是长数是指数形式的。
有些值是指数形式,有些是小数形式。示例输入字符串:

{aaData:[["1996-04-12",4.0872E8],["1996-04-15",7.92192E7],["1996-04-16",4.8016E7],["1996-04-17",4.2816E7],["1996-04-18",2.72688E7],["1996-04-19",1.29136E7],["1996-04-22",8041600.0],["1996-04-23",4297600.0],["1996-04-24",7795200.0],["1996-04-25",1.94784E7]]}

我需要将所有值转换为十进制值。
在 UI 端,JQuery 正在处理此转换。是否可以在后端使用 Gson 或任何其他库执行此操作?

是的,可以在 Java 代码中完成。您不需要使用其他库,因为内置 java.math.BigDecimal:

支持 E 表示法
BigDecimal d = new BigDecimal("4.0872E8");
long value = d.longValue();
System.out.println(value); // 408720000