使用bigdecimal来保留小数

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。

猜你喜欢

转载自blog.csdn.net/qq_38682952/article/details/78105947
今日推荐