Java学习笔记--double类型的值保留指定小数位的几种方法

在java语言中,double类型的变量使用64bit存储空间进行存储。两个double类型的变量进行除法运算时,如果小数位过多,就需要进行保留位数操作。保留位数操作分为四舍五入型和非四舍五入型两种。本文以保留两位数为例:

  • 四舍五入型
    使用java.text类中的DecimalFormat()方法可以对double类型的值进行保留位数操作。代码如下:
1
2
3
4
5
6
7
8
9
10
public class test {
public static void main(String[] args) {
double x = 1;
double y =3;
double z = x / y;
DecimalFormat decimalFormat = new DecimalFormat("####.##");
String str = decimalFormat.format(z);
System.out.println(str);
}
}

DecimalFormatserRoundMode()方法,可以智能的设置小数位的处理方法,详见API

  • 非四舍五入型
    • 方法一:使用String类的valueOf()方法将double类型的值转变成String类型,之后使用indexOf()方法,确定小数点的位置,取此位置之后两位的substring即可。代码如下:
1
2
3
4
5
6
7
8
9
10
11
public class test {
public static void main(String[] args) {
double x = 1;
double y =3;
double z = x / y;
String str = String.valueOf(z);
int situation = str.indexOf("."); //查找小数点的位置并将其值赋给situation
str = str.substring(0, situation + 3);
System.out.println(str);
}
}
  • 方法二:先使double类型的值乘以100,之后转变成int类型再除以100.00,得到包含两位小数的double值。代码如下:
1
2
3
4
5
6
7
8
9
public class test {
public static void main(String[] args) {
double x = 1;
double y =3;
double z = x / y;
z = (int) (z * 100)/100.00;
System.out.println(z);
}
}


本文章首发www.whtis.com,转载请注明出处


如果觉得这篇文章还有用的话,请我喝杯饮料呗~~