0

小数点以下2桁(1.30)に丸められた文字列を生成するように、小数点以下の値(1.29854など)をフォーマットするにはどうすればよいですか?

GWTがネイティブのJava数値フォーマットクラスをサポートしておらず、数値フォーマットのPlayNサポートが見つからないため、私は迷子になっています。

以下はJavaバージョンでは機能しますが、HTMLバージョンはコンパイルに失敗することを確認しました。

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

1 に答える 1

0

これは主に私の場合(0から10までの1桁の数字の場合)に機能しました:

        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);
    }
}
于 2012-05-16T02:14:04.530 に答える