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