我正在使用 GWT 2.8.2。
当我在 SuperDev 模式下运行以下代码时,它会记录123.456
,这是我所期望的。
double d = 123.456789;
JsNumber num = Js.cast(d);
console.log(num.toFixed(3));
当我编译成 JavaScript 并运行时,它会记录123
(即它不显示小数位)。
我尝试在 Android Chrome、Windows Chrome 和 Windows Firefox 上运行代码。它们都表现出相同的行为。
知道为什么会有差异,我能做些什么吗?
更新:经过一番挖掘,我发现这与整数参数的强制有关。
console.log(num.toFixed(3)); // 123 (wrong)
console.log(num.toFixed(3d)); // 123.456 (correct)
似乎JsNumber
Elemental2 中的类已将签名定义为:
public native String toFixed(Object digits);
我认为应该是:
public native String toFixed(int digits);
我仍然不确定为什么它在 SuperDev 模式下工作而不是在编译时工作。