1.格式要求 

(double) (Math.round(sd3*10000)/10000.0); // 这样为保持4位 

(double) (Math.round(sd3*100)/100.0); // 这样为保持2位. 

2.另一种办法 


import java.text.DecimalFormat; 

// 第一个为2位,第二个为3位. 

DecimalFormat df2 = new DecimalFormat("###.00"); 

DecimalFormat df2 = new DecimalFormat("###.000"); 

System.out.println(df2.format(doube_var)); 

3.第三种方法 


BigDecimal b1 = new BigDecimal(Double.toString(v1)); 

BigDecimal b2 = new BigDecimal(Double.toString(v2)); 

rslt = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); 

// scale表示表示需要精确到小数点以后几位。 

4.第四种方法 

如果要精确计算后去除小数点,计算出来BigDecimal类型的结果后,有如下三个方法: 


toBigInteger() // 如果数字很大用这个,返回一个BigInteger类的对象(JAVA中有这样的类,如果你的程序确实只要整数的话就用这个类吧。),小数部分直接CUT。 

intValue() // 返回int型 

longValue() // 返回long型 

参考:http://foolraty.iteye.com/blog/648171 


复制代码 

import java.math.BigDecimal; 

 import java.text.DecimalFormat; 


 public class TestGetInt { 

 public static void main(String[] args) { 

 double i = 2, j = 2.1, k = 2.5, m = 2.9; 


 System.out.println("舍掉小数取整:Math.floor(" + i + ")=" + (int) Math.floor(i)); 

 System.out.println("舍掉小数取整:Math.floor(" + j + ")=" + (int) Math.floor(j)); 

 System.out.println("舍掉小数取整:Math.floor(" + k + ")=" + (int) Math.floor(k)); 

 System.out.println("舍掉小数取整:Math.floor(" + m + ")=" + (int) Math.floor(m)); 

 System.out.println(); 


 System.out.println("舍掉小数取整:Math.floor(-" + i + ")=" + (int) Math.floor(-i)); 

 System.out.println("舍掉小数取整:Math.floor(-" + j + ")=" + (int) Math.floor(-j)); 

 System.out.println("舍掉小数取整:Math.floor(-" + k + ")=" + (int) Math.floor(-k)); 

 System.out.println("舍掉小数取整:Math.floor(-" + m + ")=" + (int) Math.floor(-m)); 

 System.out.println(); 


 // 这段被注释的代码不能正确的实现四舍五入取整 

 System.out.println("四舍五入取整:Math.rint(" + i + ")=" + (int) Math.rint(i)); 

 System.out.println("四舍五入取整:Math.rint(" + j + ")=" + (int) Math.rint(j)); 

 System.out.println("四舍五入取整:Math.rint(" + k + ")=" + (int) Math.rint(k)); 

 System.out.println("四舍五入取整:Math.rint(" + m + ")=" + (int) Math.rint(m)); 

 System.out.println(); 


 System.out.println("四舍五入取整:Math.rint(-" + i + ")=" + (int) Math.rint(-i)); 

 System.out.println("四舍五入取整:Math.rint(-" + j + ")=" + (int) Math.rint(-j)); 

 System.out.println("四舍五入取整:Math.rint(-" + k + ")=" + (int) Math.rint(-k)); 

 System.out.println("四舍五入取整:Math.rint(-" + m + ")=" + (int) Math.rint(-m)); 

 System.out.println(); 


 System.out.println("DecimalFormat四舍五入取整:(" + i + ")=" 

 + new DecimalFormat("0").format(i)); 

 System.out.println("DecimalFormat四舍五入取整:(" + j + ")=" 

 + new DecimalFormat("0").format(j)); 

 System.out.println("DecimalFormat四舍五入取整:(" + k + ")=" 

 + new DecimalFormat("0").format(k)); 

 System.out.println("DecimalFormat四舍五入取整:(" + m + ")=" 

 + new DecimalFormat("0").format(m)); 

 System.out.println(); 


 System.out.println("DecimalFormat四舍五入取整:(-" + i + ")=" 

 + new DecimalFormat("0").format(-i)); 

 System.out.println("DecimalFormat四舍五入取整:(-" + j + ")=" 

 + new DecimalFormat("0").format(-j)); 

 System.out.println("DecimalFormat四舍五入取整:(-" + k + ")=" 

 + new DecimalFormat("0").format(-k)); 

 System.out.println("DecimalFormat四舍五入取整:(-" + m + ")=" 

 + new DecimalFormat("0").format(-m)); 

 System.out.println(); 


 System.out.println("BigDecimal四舍五入取整:(" + i + ")=" 

 + new BigDecimal("2").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println("BigDecimal四舍五入取整:(" + j + ")=" 

 + new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println("BigDecimal四舍五入取整:(" + k + ")=" 

 + new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println("BigDecimal四舍五入取整:(" + m + ")=" 

 + new BigDecimal("2.9").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println(); 


 System.out.println("BigDecimal四舍五入取整:(-" + i + ")=" 

 + new BigDecimal("-2").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println("BigDecimal四舍五入取整:(-" + j + ")=" 

 + new BigDecimal("-2.1").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println("BigDecimal四舍五入取整:(-" + k + ")=" 

 + new BigDecimal("-2.5").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println("BigDecimal四舍五入取整:(-" + m + ")=" 

 + new BigDecimal("-2.9").setScale(0, BigDecimal.ROUND_HALF_UP)); 

 System.out.println(); 


 System.out.println("凑整:Math.ceil(" + i + ")=" + (int) Math.ceil(i)); 

 System.out.println("凑整:Math.ceil(" + j + ")=" + (int) Math.ceil(j)); 

 System.out.println("凑整:Math.ceil(" + k + ")=" + (int) Math.ceil(k)); 

 System.out.println("凑整:Math.ceil(" + m + ")=" + (int) Math.ceil(m)); 

 System.out.println(); 


 System.out.println("凑整:Math.ceil(-" + i + ")=" + (int) Math.ceil(-i)); 

 System.out.println("凑整:Math.ceil(-" + j + ")=" + (int) Math.ceil(-j)); 

 System.out.println("凑整:Math.ceil(-" + k + ")=" + (int) Math.ceil(-k)); 

 System.out.println("凑整:Math.ceil(-" + m + ")=" + (int) Math.ceil(-m)); 

 System.out.println(); 


 System.out.println("四舍五入取整:Math.round(" + i + ")=" + (int) Math.round(i)); 

 System.out.println("四舍五入取整:Math.round(" + j + ")=" + (int) Math.round(j)); 

 System.out.println("四舍五入取整:Math.round(" + k + ")=" + (int) Math.round(k)); 

 System.out.println("四舍五入取整:Math.round(" + m + ")=" + (int) Math.round(m)); 

 System.out.println(); 


 System.out.println("四舍五入取整:Math.round(-" + i + ")=" + (int) Math.round(-i)); 

 System.out.println("四舍五入取整:Math.round(-" + j + ")=" + (int) Math.round(-j)); 

 System.out.println("四舍五入取整:Math.round(-" + k + ")=" + (int) Math.round(-k)); 

 System.out.println("四舍五入取整:Math.round(-" + m + ")=" + (int) Math.round(-m)); 

 } 


 } 

复制代码 

舍掉小数取整:Math.floor(2.0)=2 

舍掉小数取整:Math.floor(2.1)=2 

舍掉小数取整:Math.floor(2.5)=2 

舍掉小数取整:Math.floor(2.9)=2 


舍掉小数取整:Math.floor(-2.0)=-2 

舍掉小数取整:Math.floor(-2.1)=-3 

舍掉小数取整:Math.floor(-2.5)=-3 

舍掉小数取整:Math.floor(-2.9)=-3 


四舍五入取整:Math.rint(2.0)=2 

四舍五入取整:Math.rint(2.1)=2 

四舍五入取整:Math.rint(2.5)=2 

四舍五入取整:Math.rint(2.9)=3 


四舍五入取整:Math.rint(-2.0)=-2 

四舍五入取整:Math.rint(-2.1)=-2 

四舍五入取整:Math.rint(-2.5)=-2 

四舍五入取整:Math.rint(-2.9)=-3 


DecimalFormat四舍五入取整:(2.0)=2 

DecimalFormat四舍五入取整:(2.1)=2 

DecimalFormat四舍五入取整:(2.5)=2 

DecimalFormat四舍五入取整:(2.9)=3 


DecimalFormat四舍五入取整:(-2.0)=-2 

DecimalFormat四舍五入取整:(-2.1)=-2 

DecimalFormat四舍五入取整:(-2.5)=-2 

DecimalFormat四舍五入取整:(-2.9)=-3 


BigDecimal四舍五入取整:(2.0)=2 

BigDecimal四舍五入取整:(2.1)=2 

BigDecimal四舍五入取整:(2.5)=3 

BigDecimal四舍五入取整:(2.9)=3 


BigDecimal四舍五入取整:(-2.0)=-2 

BigDecimal四舍五入取整:(-2.1)=-2 

BigDecimal四舍五入取整:(-2.5)=-3 

BigDecimal四舍五入取整:(-2.9)=-3 


凑整:Math.ceil(2.0)=2 

凑整:Math.ceil(2.1)=3 

凑整:Math.ceil(2.5)=3 

凑整:Math.ceil(2.9)=3 


凑整:Math.ceil(-2.0)=-2 

凑整:Math.ceil(-2.1)=-2 

凑整:Math.ceil(-2.5)=-2 

凑整:Math.ceil(-2.9)=-2 


四舍五入取整:Math.round(2.0)=2 

四舍五入取整:Math.round(2.1)=2 

四舍五入取整:Math.round(2.5)=3 

四舍五入取整:Math.round(2.9)=3 


四舍五入取整:Math.round(-2.0)=-2 

四舍五入取整:Math.round(-2.1)=-2 

四舍五入取整:Math.round(-2.5)=-2 

四舍五入取整:Math.round(-2.9)=-3