📅  最后修改于: 2023-12-03 14:42:13.921000             🧑  作者: Mango
在Java中,我们经常需要对数字进行格式化,在这个过程中,保留小数点后特定位数是很常见的需求。本篇文章我们将会讲解如何将Double以保留两位小数的方式显示出来。
Java提供了DecimalFormat来格式化数字,可以指定要显示多少个小数位。
double num = 3.1415926;
DecimalFormat df = new DecimalFormat("#.##");
String formatted = df.format(num);
System.out.println(formatted); // 输出 3.14
在上面的代码中,我们使用了格式串 "#.##",其中 '#' 表示可选的数字位,'.' 表示小数点,"##" 表示保留两个小数位。如果更改格式串为 "#.###",则会显示3位小数位。要显示更多小数位,只需要在格式串中添加更多的 '#'。
值得注意的是,DecimalFormat.format() 返回的是一个String类型,而不是Double类型。
另外一个常见的方式是使用String.format()方法实现格式化。
double num = 3.1415926;
String formatted = String.format("%.2f", num);
System.out.println(formatted); // 输出 3.14
在上面的代码中,我们使用了格式串 "%.2f",其中 '%' 表示占位符,'f' 表示浮点型数据,"%.2" 表示保留两个小数位。如果更改格式串为 "%.3f",则会显示3位小数位。要显示更多小数位,只需要在格式串中修改小数位数即可。
同样需要注意的是,String.format() 返回的是一个String类型,而不是Double类型。
在Java中,保留特定位数的小数是一个常见的需求,我们可以使用DecimalFormat或String.format()方法实现格式化。在具体的实现中,可以根据实际情况选择适合自己的方式。