四舍五入
在进行比赛的过程中,我们常常会遇到 让我们计算double值,并且将最后的结果保留两位小数输出,以下是关于这个问题的解决方法
方法一
使用String中的format方法
//定义了三个小数第三位为0,4,5的数,分别对应a,b,c
double a = 2.100;
double b = 2.104;
double c = 2.105;
//方法一:使用String类里面的format方法
String fig1 = String.format("%.2f",a);
String fig2 = String.format("%.2f",b);
String fig3 = String.format("%.2f",c);
System.out.println(fig1);//2.10
System.out.println(fig2);//2.10
System.out.println(fig3);//2.11
方法二
导入DecimalFormat类: 在你的Java程序中,首先需要导入DecimalFormat类,可以这样做:
import java.text.DecimalFormat;
创建DecimalFormat对象: 接下来,你需要创建一个DecimalFormat对象,用于定义数字的格式。你可以在创建对象时指定格式模式。例如,如果你想要保留两位小数并使用千位分隔符,可以这样创建对象:
DecimalFormat df = new DecimalFormat("#,##0.00");
这里的#
表示可选的数字位,,
表示千位分隔符,0
表示必须有数字位,而.00
表示保留两位小数。
格式化数字: 一旦你创建了DecimalFormat对象,你可以使用它的==format
方法==将数字格式化为字符串。
double number = 12345.6789;
String formattedNumber = df.format(number);
System.out.println(formattedNumber);
但是存在一个问题
单你小数点第二位为零时,格式化会自动把零去除,如果你需要结果保存零,就必须使decimalFormat.setMinimumFractionDigits(2),
decimalFormat.setMinimumFractionDigits(2)
是用于设置 DecimalFormat 对象的最小小数位数的方法。这意味着,如果你使用这个方法将最小小数位数设置为2,那么即使一个数字的小数部分是零,它也会被强制显示两位小数。这对于确保数字的输出具有一致的格式非常有用,尤其是当你需要对齐数字时,以便小数点对齐
DecimalFormat df = new DecimalFormat("0.00");
df.setMinimumFractionDigits(2);//设置最小位数,以防小数点末尾为零被省略
//调用df中的format方法实现数据格式化
String format1 = df.format(a);//2.10
String format2 = df.format(a);//2.10
String format3 = df.format(a);//2.11
本次知识点的github仓库:
https://github.com/Steven-267/competiton-NCCCU/blob/master/untitled/src/competiton/Test/halfAdjust.java