2012-07-18 3 views
0

Я совершенно не знаком с GWT, поэтому, пожалуйста, простите меня, если это очевидная проблема.GWT, отображающий десятичные знаки в текстовом поле

У меня есть TextBox, из которого я хочу взять значение и округлить до трех знаков после запятой, а затем вернуть округленное значение в одно и то же текстовое поле. Это может быть не изящный способ, но похоже, что это должно работать.

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 возвращает интегральный результат. Чтобы заставить результат с плавающей запятой вы ожидаете, вы можете использовать один из операндов или просто использовать float в качестве делителя:

doubleValue = Math.round(doubleValue * 1000)/1000.0; 
Смежные вопросы