1

スコアを保持するためにフロートを使用しています。スコアは整数または小数です。デフォルトでは、float は 0.0、1.0 などとして表示されます。数値に小数がない場合は、0、1 などとして表示する必要があります。小数がある場合は、小数を表示する必要があります。どうすればこれを行うことができますか?

4

3 に答える 3

3

あなたが使用することができます:

NumberFormat.getInstance().format(score);

存在する場合は小数点以下の桁数で表示します。

丸め誤差に対抗するために、ここではBigDecimalscoreを使用して表すことができます。

于 2012-08-20T21:14:04.523 に答える
3
String string;
float n = 3.0f;
if (n % 1 == 0) {
    string = String.valueOf((int) n);
} else {
    string = String.valueOf(n);
}
System.out.println("Score: " + string);

警告: テストされていないコード。;)

わかりました、私はそれをテストし、エラーを修正しました。

于 2012-08-20T21:08:30.970 に答える
0

あなたの最善の策は、最小の粒度のスコアを計算し、それを適切な乗数で使用することです。

たとえば、最小の増分が 0.01 の場合、100 の乗数を使用します。また、スコア % 乗数 = 0 の場合、それが整数であることがわかります。

そうすれば、丸めや表現エラーについて心配する必要はありません。

于 2012-08-20T21:22:52.250 に答える