使用bigdecimal来保留小数

来源:互联网 发布:org.apache.http post 编辑:程序博客网 时间:2024/05/13 04:50

double和float精度已经非常高了,但对于一些更加精确的东西还是有所欠缺,所以也就有了精度更高的bigdecimal,只要计算机的内存更大,精确的就更准。

 import java.math.BigDecimal;

导入BigDecimal包。

float f = ran.nextFloat() * 60 + 40;                BigDecimal b = new BigDecimal(f);                float a = b.setScale(1, BigDecimal.ROUND_HALF_UP)                        .floatValue();

首先定义float类型的f在40-100范围随机产生随机数给f,在把f的值给BigDecimal进行封装,用BigDecimal里的setScale方法,第一个值表示要保留的位数,1也就是保留一位小数,BigDecimal.ROUND_HALF_UP表示对后面小数进行四舍五入,floatValue得到一个float类型的值,这样就完成了保留一位小数的操作。
顺便提一下还有一个方法,java里有个math类的。
Math.round
  语法:
   Math.round(x);
  参数:
   x 为一数值。
  解释:
   方法。返回对参数x四舍五入后所得的整数近似值。
如:Math.round(11.68)=12。

原创粉丝点击