2012-07-18 6 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에, 소수점의 오른쪽에있는 모든 값이 0으로보고 있다는 것입니다. 그래서 내가 걸릴 때 :

(Math.round (0.99283425 * 1000))/1000 0.993을 얻을 것으로 예상됩니다. 내가 결국 무엇입니까 0.0

나는 무엇이 누락 되었습니까?

답변

1

항상 기존 숫자/날짜 서식 라이브러리를 찾으십시오. GWT는 자신의 것을 제공합니다 : NumberFormat.

코드에서 0은 정수 나누기의 예상되는 결과입니다. Math.round은 완전한 결과를 반환합니다. 부동 소수점 결과를 강제로 처리하려면 피연산자 중 하나를 캐스팅하거나 플로트를 제수로 사용하면됩니다.

doubleValue = Math.round(doubleValue * 1000)/1000.0; 
관련 문제