大浮点数类:
BigInteger不能够保存小数,而BigDecimal能够保存
BigDecimal构造方法1:public BigDecimal(String val)
BigDecimal构造方法2:public BigDecimal(double val)
与BigInteger一样,BigDecimal本身也支持基础的数学计算,除此之外,可以利用它来实现准确的四舍五入操作,Math.round操作所有的小数位都四舍五入了,遗憾的是BigDecimal类里面没有直接提供有四舍五入的支持,但是有除法操作支持。
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
被除数,保留的小数位,进位模式
BigDecimal有个常量 public static int ROUND_HALF_UP
下面实现准确的四舍五入
范例:实现准确的四舍五入
package TestDemo;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Random;
class MyMath{
/**
* 实现准确位数的四舍五入
* @param num 要进行四舍五入的数字
* @param scale 要保留的小数位
* @return 处理后的四舍五入数据
*/
public static double round(double num,int scale){
BigDecimal bigA=new BigDecimal(num);
BigDecimal bigB=new BigDecimal(1);
return bigA.divide(bigB,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
public class TestDemo{
public static void main(String[] args) throws Exception{
System.out.println(MyMath.round(19.12312312313,2));
}
}

成功了。
1.Math类重点要清楚round方法的坑
2.Random类生成随机数
3.如果数据量大就是用BigInteger或者BigDecimal类(Number子类)
网友评论