我对GWT完全不熟悉,如果这是一个明显的问题,请原谅我。
我有一个TextBox,我想从中取一个值并舍入到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
我错过了什么?
答案 0 :(得分:1)
始终查找现有的数字/日期格式库。 GWT确实提供了它自己的:NumberFormat。
在您自己的代码中,您看到0
,这是整数除法的预期结果:Math.round
返回整数结果。要强制你期望的浮点结果,你可以强制转换其中一个操作数,或者只使用一个浮点作为除数:
doubleValue = Math.round(doubleValue * 1000) / 1000.0;