0

私は GWT にまったく慣れていないので、これが明らかな問題である場合はご容赦ください。

値を取得して小数点以下 3 桁に丸め、丸めた値を同じテキスト ボックスに返す 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です

私は何が欠けていますか?

4

1 に答える 1

1

常に既存の数値/日付フォーマット ライブラリを探します。GWT は独自のNumberFormatを提供します。

あなたが見ているあなた自身のコード0では、これは整数除算の期待される結果です: 整数の結果をMath.round返します。予想される浮動小数点の結果を強制するには、オペランドの 1 つをキャストするか、単純に浮動小数点数を除数として使用します。

doubleValue = Math.round(doubleValue * 1000) / 1000.0;
于 2012-07-18T21:03:13.730 に答える