我试图找出如何输入格式化字符串以在toast中使用。 toast使用普通的旧字符串,例如
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 :(得分:2)
你必须写下%f
代替%d
,如下所示。
float score = ((float) mNumberCorrect / 6)*100;
Toast.makeText(this, String.format("You scored: %f", score) , Toast.LENGTH_LONG).show();
答案 1 :(得分:1)
你可以这样做:
float score = ((float) mNumberCorrect / 6)*100;
Toast.makeText(this, String.format("You scored: %d %%", score) , Toast.LENGTH_LONG).show();
%%会转义百分比(%)字母并为您提供所需的输出
答案 2 :(得分:0)
如果您想避免小数点,请尝试改为使用int
。
int score = Math.round(mNumberCorrect / 6 * 100)
Toast.makeText(this, String.format("You scored: %d", score) , Toast.LENGTH_LONG).show();
请注意,您使用的是%d
,表示整数,而不是浮点数。有关不同数据类型的用途的详细信息,请参阅this document。
答案 3 :(得分:0)
IMO你可以用字符串格式获得浮点值,然后按照上面的Toast显示
float score = ((float) mNumberCorrect/ 6)*100;
String sr = String.valueOf(score);
Toast.makeText(this,"You scored: " + sr , Toast.LENGTH_LONG).show();