保留小数点后几位数字
对于一些Java的初学者(博主也只算平民级别,以下是我的见解,可能有小错误,有错莫怪),如何保留一个double型小数点后固定的位数很是让人苦恼,因为我刚学的时候不知道如何保留小数点后几位。下面是我的一些方法。
第一种方法:格式化输出
这种方法大家已经见怪不怪了,学过C语言的同学都知道这中输出方法在C中很常用,其实在Java中,这种方法也可以使用。比如看下面的代码。
public class SavePoint {
public static void main(String[] args) {
double a=7.0/3;
System.out.println(a);
//第一种方法
System.out.printf("%.2f\n",a);
}
}
输出的结果为:
2.3333333333333335
2.33
从结果上看,该方法可行。
下面来介绍第二种方法。
第二种方法:DecimalFormat类
这种方法对于初学者来说不常用,因为这种方法牵扯到了一个类的使用。代码如下:
public class SavePoint {
public static void main(String[] args) {
double a=7.0/3;
System.out.println(a);
//第二种方法
DecimalFormat d=new DecimalFormat("#.00");
System.out.println(d.format(a));
}
}
输出的结果和上面一样。同样可以输出保留小数点后两位。这种方法还可以优化。
public class SavePoint {
public static void main(String[] args) {
double a=7.0/3;
System.out.println(a);
//第二种方法
System.out.println(new DecimalFormat("#.00").format(a));
}
}
输出结果为:
2.3333333333333335
2.33
这两种输出方式其实都用了DecimalFormat类,本质还是一样的,只不过第二种比较简单。
第三种方法:“运算输出”
有些同学觉得以上两种方法太麻烦,而且自己也不喜欢格式化输出(其实博主也不喜欢格式化输出,受到了当时在ACM总是格式化输出的影响,因此有些hate这种方法),什么方法不重要,哪种适合自己的方法才是最好的方法。来看代码
public class SavePoint {
public static void main(String[] args) {
double a=7.0/3;
System.out.println(a);
//第三种方法
System.out.println((int)(a*100)/100.0);
}
}
输出结果为:
2.3333333333333335
2.33
可知结果和上面两种方法输出的一样。博主一般情况也喜欢这种方法,因为比较简单明确,更适合理解。如果想要自己代码的逼格高一点可以使用第二种方法。
欢迎各位采纳,如需转载请附本链接。