2012-07-18 61 views
0

我对GWT完全陌生,所以请原谅我,如果这是一个明显的问题。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

我错过了什么?

回答

1

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

在您自己的代码中,您会看到0,这是整数除法的预期结果:Math.round返回整数结果。要强制执行所期望的浮点结果,您可以投射一个操作数,或者仅使用浮点数作为除数:

doubleValue = Math.round(doubleValue * 1000)/1000.0;