2012-05-15 2 views
0

Как я могу отформатировать десятичное значение (например, 1.29854), чтобы оно создавало строку, округленную до двух знаков после запятой (1.30)?В PlayN есть кросс-платформенный метод для форматирования десятичных знаков?

Я потерян, потому что GWT doesn't support the native Java number formatting classes, и я не могу найти поддержку PlayN для форматирования чисел.

Я подтвердил, что, в то время как следующие работы в версии Java, HTML-версия не может скомпилировать:

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

ответ

0

Это в основном работал в моем случае (для однозначных чисел от 0 до 10) :

 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); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^