在 toast Android 中使用 String.format() 字符串
Using String.format() string in a toast Android
我想弄清楚如何输入格式化字符串以在 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();
你必须像下面那样用 %f
代替 %d
。
float score = ((float) mNumberCorrect / 6)*100;
Toast.makeText(this, String.format("You scored: %f", score) , Toast.LENGTH_LONG).show();
如果您想避免使用小数点,请尝试使用 int
。
int score = Math.round(mNumberCorrect / 6 * 100)
Toast.makeText(this, String.format("You scored: %d", score) , Toast.LENGTH_LONG).show();
请注意,您使用的 %d
表示整数,而不是浮点数。有关用于不同数据类型的详细信息,请参阅 this document。
IMO 你可能会得到字符串格式的浮点值,然后像上面那样在 Toast 中显示
float score = ((float) mNumberCorrect/ 6)*100;
String sr = String.valueOf(score);
Toast.makeText(this,"You scored: " + sr , Toast.LENGTH_LONG).show();
您可以简单地这样做:
float score = ((float) mNumberCorrect / 6)*100;
Toast.makeText(this, String.format("You scored: %d %%", score) , Toast.LENGTH_LONG).show();
%% 转义百分比 (%) 字母并为您提供所需的输出
我想弄清楚如何输入格式化字符串以在 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();
你必须像下面那样用 %f
代替 %d
。
float score = ((float) mNumberCorrect / 6)*100;
Toast.makeText(this, String.format("You scored: %f", score) , Toast.LENGTH_LONG).show();
如果您想避免使用小数点,请尝试使用 int
。
int score = Math.round(mNumberCorrect / 6 * 100)
Toast.makeText(this, String.format("You scored: %d", score) , Toast.LENGTH_LONG).show();
请注意,您使用的 %d
表示整数,而不是浮点数。有关用于不同数据类型的详细信息,请参阅 this document。
IMO 你可能会得到字符串格式的浮点值,然后像上面那样在 Toast 中显示
float score = ((float) mNumberCorrect/ 6)*100;
String sr = String.valueOf(score);
Toast.makeText(this,"You scored: " + sr , Toast.LENGTH_LONG).show();
您可以简单地这样做:
float score = ((float) mNumberCorrect / 6)*100;
Toast.makeText(this, String.format("You scored: %d %%", score) , Toast.LENGTH_LONG).show();
%% 转义百分比 (%) 字母并为您提供所需的输出