2012-05-15 2 views
0

소수점 이하 두 자리 (1.30)로 반올림되는 문자열을 생성하도록 어떻게 십진수 값 (예 : 1.29854)을 포맷 할 수 있습니까?PlayN에는 십진수 형식을 지정하기위한 플랫폼 간 방법이 있습니까?

GWT doesn't support the native Java number formatting classes과 숫자 서식에 대한 PlayN 지원을 찾을 수 없어서 분실되었습니다.

DecimalFormat df = new DecimalFormat("0.00"); 
    String formattedValue = df.format(1.29854); 

답변

0

이 대부분 (0과 10 사이의 한 자리 숫자) 내 경우 근무 :

나는 Java 버전에서 다음 작품, HTML 버전은 컴파일에 실패하면서 있음을 확인했습니다 :

 String formatted = ((Double) (Math.round(doubleValue * 100.0)/100.0)).toString(); 
     formatted = (formatted + "00").substring(0,4); 

Java 및 HTML 버전으로 확인됩니다. 단위 테스트는 다음과 같습니다.

@Test 
public void testNumberFormatting() { 
    ArrayList<Double> testCases = Lists.newArrayList(
     0.0, 0.986, 1.0, 1.2, 1.29, 1.295); 
    ArrayList<String> expectResults = Lists.newArrayList(
     "0.00", "0.99", "1.00", "1.20", "1.29", "1.30"); 

    for (int n=0; n<testCases.size(); n++) { 
     Double testCase = testCases.get(n); 
     String formatted = ((Double) (Math.round(testCase * 100.0)/100.0)).toString(); 
     formatted = (formatted + "00").substring(0,4); 
     assertEquals(expectResults.get(n), formatted); 
     System.out.println(formatted); 
    } 
} 
관련 문제