建议方法:用Bigdecimal来处理浮点数的加减

例如:


import java.math.BigDecimal;
import  java.util.*;
 public class Main
	 public static void main(String ags[])
		  Scanner cn=new Scanner(System.in);
		  double t=0.011115;
		  double r=0.012222;
		  BigDecimal q=new BigDecimal(String.valueOf(t) );
		  BigDecimal w=new BigDecimal(String.valueOf(r)); 
		  System.out.println(q.add(w).setScale(4,BigDecimal.ROUND_HALF_UP  ));
		  /*q.multiply(w); 乘法
		  q.abs();  
		  q.divide(w);  除法
		  q.subtract(w);  减法*/
		  //通过转化成bigdecimal的一个实例,然后可以加减乘除,通过setScale方法,第一个参数数设置保留的位数
		  //第二个参数是保留的形式  BigDecimal.ROUND_HALF_UP 是4舍5入比较常用
		  //还有如下的保留方式,但是不常用
		  /*setScale(1)表示保留一位小数,默认用四舍五入方式 
		  setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 
		  setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 
		  setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
		  setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍*/		 
 }





方法一:通过四舍五入方式保留特定后几位


import java.util.*;
public class Main
public static void main(String args[])
double t=1.123456;
System.out.println((double)Math.round(t*100000)/100000);   //5个零
}

输出:1.12346(四舍五入了)

说明:这种方式通过强制输出double类型,同时注意这里有乘上几个零就是保留几个小数。如果改成Math.round(t*100)/100,这样就会输出1.12


方法二:通过四舍五入保留小数


import java.util.*;
import java.text.DecimalFormat;
public class Main {
    public static void main(String[] args) {
       double t=1.123456;
       System.out.println(new DecimalFormat("0.0000").format(t)); //英语中:Decimal---十进制的  Format----格式化
}


输出:1.1235

说明:这是调用了text.DecimalFormat,在输出时候,将数字格式化了,其实(“0.0000”)就是格式的模版,输出4个小数,会自动四舍五入,改成(“0.0”)就会输出1.1,改成(“00.000”)会自动补位输出01.123


方法三:通过四舍五入保留小数


import java.util.*;
public class Main {
    public static void main(String[] args) {
    	double t = 1.123456;
    	String str = String.format("%.4f", t);
    	System.out.println(str);
}


输出:1.1234

说明:通过转换成字符串的方式输出小数点后几位,其中的(“%4f”)就是控制的输出的小数点的位数要求



方法四:不四舍五入保留小数


import java.util.*;
public class Main {
    public static void main(String[] args) {
    	double t = 1.123456;
    	String str = String.valueOf(t);
    	String str2="";
    	for(int i=0;i<6;i++)
    		str2=str2+str.charAt(i);
    	System.out.println(str2);
}


输出:1.1234

说明:本质就是强制转化成字符串,然后进行字符串的截取工作

* @param rows 为多少行一个文件 * @param sourceFilePath 为源文件路径 * @param targetDirectoryPath 文件分割后存放的目标目录 public void splitDataToSaveFile(int rows, String s