GWT,BigDecimal和RPC始终返回0

时间:2015-02-06 17:04:04

标签: gwt bigdecimal gwt-rpc

我在客户端创建BigDecimal对象并通过RPC将其发送到服务器时遇到了很多麻烦。当我在服务器端读取BigDecimal的toString或toPlainString方法时,它总是返回0.在客户端,toPlainString方法返回正确的值,但toString仍返回0.

BigDecimal d = new BigDecimal("1.2345");
GWT.log("Test: " + d.toString()); // 0
GWT.log("Test: " + d.toPlainString()); // 1.2345, OK!

据我所知,应支持BigDecimal,但我无法在客户端创建一个并成功发送到服务器端。 (只要我使用toPlainString方法,从服务器端读取它们就没问题了。)

有什么建议吗?感谢

编辑:或以其他方式询问:有没有人能够在客户端构建BigDecimal并成功将其发送到服务器?

1 个答案:

答案 0 :(得分:0)

对我来说,这段代码:

    BigDecimal bd = new BigDecimal(1.2345);
    System.out.println(bd.toString());
    System.out.println(bd.toPlainString());

在服务器和客户端上都有以下输出:

1.2344999999999999307220832633902318775653839111328125 1.2344999999999999307220832633902318775653839111328125

我正在使用GWT 2.6和Java 1.7,所以Java 1.8的实现可能会发生变化而且还没有完全模拟出来?另外,请确保您使用的BigDecimal实际上来自java.math。