2012-07-05 76 views
1

如何從gwt中的客戶端刪除雙倍指數。避免gwt中的雙倍指數

public double evaluate(final double leftOperand, final double rightOperand) { 
     Double rtnValue = new Double(leftOperand * rightOperand); 
      //Require to write code which remove exponent before return 
     return rtnValue.doubleValue(); 
    } 

服務器端可以使用的NumberFormat

NumberFormat formatter = new DecimalFormat("#0.00"); 
     System.out.println(number); 
     System.out.println(formatter.format(number)); 

但客戶端扔掉它像例外: 16:08:04.190 [錯誤] [VFLOW] 359行:沒有源代碼可用於類型java.text.NumberFormat;你忘了繼承一個必需的模塊嗎?

因爲GWT不包括LIB的java.text JRE Emulation Reference

並且還我試圖與的String.format( 「%2f上。」,doubleResult);

是GWT中不支持String.format(),或者我做錯了什麼 在這裏?

那麼我怎樣才能避免雙指數?有什麼辦法嗎?

回答

2

嘗試使用JavaScript和JSNI:

native String format(double num) /*-{ 

    // ...implemented with JavaScript 
    var v = num; 
    return "" + v.valueOf(); 

}-*/; 

我沒有GWT SDK跟我現在嘗試它,但它應該是這樣的。

+0

當我把這種方法時拋出錯誤:java.lang.IllegalArgumentException異常:其他東西比一個Java對象從JSNI方法返回「@ com.client.test.ExponentTest ::格式這是此頁上描述(D)':類型爲int的JS值,期望的java.lang.Object – iMBMT 2012-07-05 12:52:13

+0

= \嘗試將「格式」的返回值更改爲int或Object並查看發生了什麼 – shem 2012-07-05 12:55:14

+0

非常感謝。完成。我已經返回「」+ v.valueOf();. – iMBMT 2012-07-05 13:11:39