Ant*_*ney 230
您可以使用此printf方法,如下所示:
System.out.printf("%.2f", val);
Run Code Online (Sandbox Code Playgroud)
简而言之,%.2f语法告诉Java 从格式说明符()的开头以浮点数val(.2)的十进制表示形式返回带有2个小数位()的变量f(%).
除此之外,您还可以使用其他转换字符f:
d:十进制整数o:八进制整数e:科学记数法的浮点数Boz*_*zho 169
你可以用DecimalFormat.一种使用方法:
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
System.out.println(df.format(decimalNumber));
Run Code Online (Sandbox Code Playgroud)
另一个是使用#.##格式构造它.
我发现所有格式化选项的可读性都低于调用格式化方法,但这是一个偏好问题.
Joh*_* P. 84
如果您需要在代码中使用值,我建议使用String.format()String.
例如,您可以String.format()按以下方式使用:
float myFloat = 2.001f;
String formattedString = String.format("%.02f", myFloat);
Run Code Online (Sandbox Code Playgroud)
Kev*_*tre 37
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
Run Code Online (Sandbox Code Playgroud)
Pha*_*inh 16
float f = 102.236569f;
DecimalFormat decimalFormat = new DecimalFormat("#.##");
float twoDigitsF = Float.valueOf(decimalFormat.format(f)); // output is 102.24
Run Code Online (Sandbox Code Playgroud)
Bay*_*Bay 12
您可以使用下面的快速代码,该代码在最后自行更改。在点后添加多少个零作为参考
float y1 = 0.123456789;
DecimalFormat df = new DecimalFormat("#.00");
y1 = Float.valueOf(df.format(y1));
Run Code Online (Sandbox Code Playgroud)
变量 y1之前等于0.123456789。在代码之后它只变成0.12。
很多人都提到过DecimalFormat.但是printf如果您有最新版本的Java,也可以使用它:
System.out.printf("%1.2f", 3.14159D);
Run Code Online (Sandbox Code Playgroud)
有关printf格式字符串的更多信息,请参阅Formatter上的文档.
小智 8
一个简单的技巧是通过将变量乘以例如100四舍五入并100.0再次将其除以来生成变量的较短版本.这样生成一个带有2个小数位的变量:
double new_variable = Math.round(old_variable*100) / 100.0;
Run Code Online (Sandbox Code Playgroud)
这个"便宜的技巧"对我来说总是足够好,并且可以用任何语言工作(我不是Java人,只是学习它).
以下是教程中的示例:
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
System.out.println(value + " " + pattern + " " + output);
Run Code Online (Sandbox Code Playgroud)
如果你选择像"###.##"这样的模式,你会得到两个小数位,我认为这些值是四舍五入的.您将需要查看链接以获得所需的确切格式(例如,是否需要尾随零)
小智 6
float floatValue=22.34555f;
System.out.print(String.format("%.2f", floatValue));
Run Code Online (Sandbox Code Playgroud)
输出为22.35.如果需要3个小数点,请将其更改为"%.3f".
以下是在Java中如何显示带小数点后两位的浮点数据输出的代码:
float ratingValue = 52.98929821f;
DecimalFormat decimalFormat = new DecimalFormat("#.##");
float twoDigitsFR = Float.valueOf(decimalFormat.format(ratingValue)); // output is 52.98
Run Code Online (Sandbox Code Playgroud)
小智 5
在 Java 中打印最多 2 个小数位的浮点数:
float f = (float)11/3;
System.out.print(String.format("%.2f",f));
Run Code Online (Sandbox Code Playgroud)
输出:3.67
> 使用%.3f最多保留三个小数位。