0

我对 GWT 完全陌生,所以如果这是一个明显的问题,请原谅我。

我有一个文本框,我想从中取一个值并四舍五入到小数点后 3 位,然后将四舍五入的值返回到同一个文本框。这可能不是优雅的方式,但似乎应该可行。

inputValueBox = new TextBox();
            .
            .
            .     
double doubleValue = Double.parseDouble(inputValueBox.getText());
doubleValue = (Math.round(doubleValue * 1000))/1000;
inputValueBox.setText(Double.toString(doubleValue));

我尝试了多种不同的方法,最终结果是,在 inputValueBox 中,小数点右侧的所有值都报告为零。所以当我采取:

(Math.round(0.99283425 * 1000))/1000 我希望得到 0.993。我最终得到的是 0.0

我错过了什么?

4

1 回答 1

1

始终寻找现有的数字/​​日期格式库。GWT 确实提供了它自己的:NumberFormat

在您自己的代码中,您看到0的是整数除法的预期结果:Math.round返回整数结果。要强制使用您期望的浮点结果,您可以转换其中一个操作数,或者简单地使用浮点数作为除数:

doubleValue = Math.round(doubleValue * 1000) / 1000.0;
于 2012-07-18T21:03:13.730 回答