如果float是整数(java),是否将小数位数设置为0?

如果float是整数(java),是否将小数位数设置为0?,java,floating-point,integer,decimal,Java,Floating Point,Integer,Decimal,我用浮点数来记分。分数可以是整数或小数。默认情况下,浮点数显示为0.0、1.0等。如果数字没有小数,我需要它显示为0、1等。如果它确实有小数,那么我需要显示小数。我该怎么做 String string; float n = 3.0f; if (n % 1 == 0) { string = String.valueOf((int) n); } else { string = String.valueOf(n); } System.out.println("Score: " + st

我用浮点数来记分。分数可以是整数或小数。默认情况下,浮点数显示为0.0、1.0等。如果数字没有小数,我需要它显示为0、1等。如果它确实有小数,那么我需要显示小数。我该怎么做

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);
警告:未测试的代码。;)

好的,我已经测试并修复了一个错误

警告:未测试的代码。;)

好的,我已经测试并修复了一个错误。

您可以使用:

NumberFormat.getInstance().format(score);
显示时用小数位显示

为了防止舍入错误,这里的分数可以用a表示。

您可以使用:

NumberFormat.getInstance().format(score);
显示时用小数位显示


为了防止舍入错误,
分数可以用a来表示。

最好的办法是计算出分数的最小粒度,然后使用适当的乘数

例如,如果最小增量为0.01,则使用乘数100。如果你的分数%mulitplier=0,那么你知道这是一个整数


这样你就不必担心舍入或表示错误。

你最好的办法是计算出分数的最小粒度,然后使用适当的乘数

例如,如果最小增量为0.01,则使用乘数100。如果你的分数%mulitplier=0,那么你知道这是一个整数


这样你就不必担心四舍五入或表示错误。

你不应该使用浮点数来保存分数。它容易累积错误。我建议使用两个变量来保存分数的两个部分,然后简单地格式化分数的显示。或者使用一个。它必须是一个浮动,因为SharedReferences接受浮动,而不是双倍(Android,顺便说一句)您不应该使用浮动来保存分数。它容易累积错误。我建议使用两个变量来保存分数的两个部分,然后简单地格式化分数的显示。或者使用一个。它必须是一个浮点数,因为SharedReferences接受浮点数,而不是双倍(Android,顺便说一句)这并没有去掉小数?不要显示原始分数,使用NumberFormat的输出。但这并没有去除小数?不要显示原始分数,使用NumberFormat的输出。