避免gwt中双倍的指数

时间:2012-07-05 10:29:18

标签: java javascript 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 个答案:

答案 0 :(得分:2)

尝试在JSNI中使用javascript:

native String format(double num) /*-{

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

}-*/;

我现在没有GWT sdk和我一起尝试,但它应该是这样的。

答案 1 :(得分:0)

GWT中有一个自定义的NumberFormat: http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/i18n/client/NumberFormat.html

由于兼容性原因,GWT不支持NumberFormat和DateFormat的Java API。此页面对此进行了描述:https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsFormatting