如何在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(),或者我做错了什么 这里?
那么如何才能避免双重指数?有什么办法吗?
答案 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