BigDecimal的setScale四大常用方法总结 // 设置小数点后第三位数字一大一小观察效果BigDecimal num = new BigDecimal("3.3235667");BigDecimal numOne = new BigDecimal("3.3275667"); 1.ROUND_UP:进位制:不管保留数字后面是大是小(0除外)都会进1 // ROUND_UP--进位制:不管保留数字后面是大是小(0除外)都会进1BigDecimal num1…
1.简介 BigDecimal类位于java.math.BigDecimal包下.使用此类可以完成大的小数操作,而且也可以使用此类进行精确的四舍五入,这一点在开发中经常使用. 对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算结果,则必须使用BigDecimal类. 2.BigDecimal类常用方法 2.1.BigDecimal(String val):构造方法,将String类型转换成BigDecimal类型数据. 2.2.BigDecimal(d…
最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,一度让我怀疑起是否jdk有bug,代码如下: 错误代码 double d = 7.199999999999999; BigDecimal decimal = new BigDecimal(String.valueOf(d)); decimal.setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(decimal.scale()); Sy…
ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDecimal a = new BigDecimal(1.5);                System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+"/tup="+a.setScale(0,BigDeci…
import java.math.BigDecimal; 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(2)=" + ( System.out.println("舍掉小数取整:Math.floor(2.1)=" + ( Sy…
java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();  保留两位小数  --------------------------------------------------------------- 方式二…
  BigDecimal是不可变的.任意精度的.有符号的.十进制数.   组成部分 BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成 BigDecimal 表示的数值是  : unscaledValue × 10的-scale 次幂 私有成员intVal就是非标度值 scale就是标度   标度 BigDecimal由非标度值 和 32 位的整数标度 (scale) 组成 BigDecimal表示的数为: unscaledValue × 10的-sca…
转载请注明出处: 目录 1.BigDecimal 简介 2.构造BigDecimal的对象 3.常用方法总结 4.divide方法使用 5.setScale 方法使用 6.BigDecimal 数据库存储类型对应 decimal 1.BigDecimal 简介 在进行浮点数 long 或 double 类型的运算时,如果直接进行运算,浮点数的运算会出现精度失准的情况,特别是在计算和金额相关的运算时,必须计算精确,不能出现误差,BigDecimal 的出现就是为了解决 浮点数类型的运算精度失准的场…
1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); public BigDecimal(char[] in, int offset, int len) ; public BigDecimal(String val); public BigDecimal(double val); public BigDecimal(BigInteger val); pu…
项目中遇到了数值运算,如网上所写的,一般有这几个方法: /** * 提供精确的加法运算. * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public static double add(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2));…