GWT、BigDecimal和RPC始终返回0

GWT、BigDecimal和RPC始终返回0,gwt,bigdecimal,gwt-rpc,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

在客户端创建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并将其成功发送到服务器?

对于我,以下代码:

    BigDecimal bd = new BigDecimal(1.2345);
    System.out.println(bd.toString());
    System.out.println(bd.toPlainString());
在服务器和客户端上都有以下输出:

1.23449999999307220832633902318775653839111328125 1.23449999999307220832633902318775653839111328125


我使用的是GWT2.6和Java1.7,所以可能Java1.8的实现发生了变化,它还没有完全仿真?另外,确保您使用的BigDecimal实际上来自java.math

顺便说一句,我在MacOS10.10.2上使用GWT2.7和Java1.8