2015-02-06 102 views
0

我在客戶端創建BigDecimal對象並通過RPC將其發送到服務器時遇到了很多麻煩。當我讀到BigDecimal的的toString或toPlainString方法在服務器端,它總是返回0。客戶端,toPlainString方法返回正確的值,但仍的toString返回0GWT,BigDecimal和RPC總是返回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

我在Mac OS 10.10.2上使用GWT 2.7和Java 1.8,btw – 2015-02-06 17:20:53

回答

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。