2017-07-15 2 views
1

トーストで使用する書式設定された文字列を入力する方法を理解しようとしています。トーストは普通の古い文字列で動作します。トーストでString.format()の文字列を使用する

string s1 = "You scored" 

しかし、String.format()では動作しません。どうしてこれなの?これを回避する方法はありますか?私はすでにそれがうまくいくことを知っています

Toast.makeText(this, "You scored: " + score + "%", Toast.LENGTH_LONG).show(); 

しかし、パーセントには小数点がないようにします。私は周りを検索したが、答えを見つけることができませんでした。

これは動作しないものです:

float score = ((float) mNumberCorrect/6)*100; 

Toast.makeText(this, String.format("You scored: %d", score) , Toast.LENGTH_LONG).show(); 
+0

以下のチェックを確認してください –

答えて

1

あなたは以下のように%dの代わりに%fを記述する必要があります。

float score = ((float) mNumberCorrect/6)*100; 

Toast.makeText(this, String.format("You scored: %f", score) , Toast.LENGTH_LONG).show(); 
+0

ハハワウはダムの間違いです。私はそれがトースト法と関係があると思った。 – Bob

+0

ええ...その後、答えを受け入れてください。 –

0

小数点を避けたい場合は、代わりにintを使用してみてください。

int score = Math.round(mNumberCorrect/6 * 100) 
Toast.makeText(this, String.format("You scored: %d", score) , Toast.LENGTH_LONG).show(); 

%dは、floatではなく整数を表しています。さまざまなデータタイプに使用する方法の詳細については、this documentを参照してください。

0

IMOあなたは文字列形式で浮動小数点値を取得し、あなたは、単にこれを行うことができます

float score = ((float) mNumberCorrect/ 6)*100; 
    String sr = String.valueOf(score); 

    Toast.makeText(this,"You scored: " + sr , Toast.LENGTH_LONG).show(); 
0

上記のようにトーストに表示されることがあります。%%はパーセント(%)文字をエスケープ

float score = ((float) mNumberCorrect/6)*100; 

Toast.makeText(this, String.format("You scored: %d %%", score) , Toast.LENGTH_LONG).show(); 

をあなたに希望の出力を与える

関連する問題