2017-07-15 4 views
1

J'essaie de comprendre comment entrer une chaîne formatée à utiliser dans un toast. Le toast travaille avec une chaîne ancienne plaine, commeUtilisation de la chaîne String.format() dans un toast Android

string s1 = "You scored" 

Mais il ne fonctionnera pas avec String.format(). Pourquoi est-ce? Y a-t-il un moyen de contourner cela? Je sais déjà que cela fonctionnera si je le fais

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

Mais je veux que le pourcentage n'ait pas de nombres décimaux. J'ai cherché autour mais n'ai pas pu trouver une réponse.

C'est ce qui ne fonctionne pas:

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

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

vérifier ci-dessous les réponses –

Répondre

1

vous devez écrire %f en place de %d comme ci-dessous.

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

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

Hahah wow c'est une erreur stupide. Je pensais que c'était quelque chose à voir avec la méthode du pain grillé. – Bob

+0

Yeha ... Alors, veuillez accepter la réponse. –

0

Si vous voulez éviter les points décimaux, essayez d'utiliser un int à la place.

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

Notez que vous utilisiez %d qui représente un nombre entier, plutôt que d'un flotteur. Voir this document pour plus de détails sur les types de données à utiliser.

0

OMI vous pouvez obtenir la valeur flottante sous forme de chaîne, puis afficher dans Toast comme ci-dessus

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

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

Vous pouvez simplement faire ceci:

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

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

Le %% échappe le pourcentage (%) lettre et vous donne la sortie désirée