bigdecimal比较大小(BigDecimal比较大小及赋值)

张工 2022-06-08 18:09:59 阅读:80
  

  好的程序员可以在Java培训中分享BigDecimal的用法。如果数值结果精度很高,可以使用BigDecimal,可以精确控制小数点后的数字。


好程序员Java培训分享BigDecimal的用法


  Java培训

  1.实例BigDecimal对象

  通常,BigDecimal对象是通过使用String和int构造函数来实例化的,即

  new BigDecimal(字符串val);

  new BigDecimal(int val);

  如果参数是double类型,则必须在输入参数之前将其转换为String类型。

  new BigDecimal(double . tostring(123.123));

  2.大十进制加法、减法、乘法和除法

  加减乘除是指通过对BigDecimal对象点(。),以及返回的BigDecimal对象。

  add:bigdecimal add=newbigdecimal(' 123.123 ')。add(newbigdecimal(' 123.123 '));- 246.246

  MINUS:BigDecimal Subtract=NewBigDecimal(' 123.123 ')。subtract(NewBigDecimal(' 123.123 ');- 0.000

  Multiply: bigdecimal倍数=newbigdecimal ('123.123 ')。multiply(newbigdecimal(' 123.123 '));- 15159.273129

  除了:bigdecimal divide=newbigdecimal(' 123.123 ')。divide(newbigdecimal(' 123.123 '));- 1

  注意:一般除法不直接除法,如果不能整除,这样运行程序会出错,所以一般除法会用到下面的重载方法。

  新的BigDecimal('10 ')。除法(' 40 ',1,ROUND _ HALF _ UP);- 0.3

  10/40的正常计算结果是0.25。这里是十除以四十,保留小数点后一位,四舍五入的模式。所以结果是0.3。

  最常用的模式:

   ROUND_HALF_UP:圆形。

   ROUND_HALF_DOWN:向下选择(去掉保留小数位后的小数位)

  3.缩放属性操作

  得到小数位数:newbigdecimal ('123.123 ')。标度()-3

  setscale()方法保留几个小数位。

  -setScale(int NewScale):(注意:参数个数只能大于等于小数位数,圆括号中只能输入大于等于3的数字)

  例如:newbigdecimal ('123.123 ')。设置刻度(3)-123.123

  新的BigDecimal('123.123 ')。设置刻度(5) - 123.12300

  - setScale(int newScale,RoundingMode roundingMode):

  示例:new bigdecimal ('123.123 ')。setscale (2,舍入模式。半涨)-123.12

  新的BigDecimal('123.125 ')。setScale(2,RoundingMode。半涨)- 123.13

  新的BigDecimal('123.123 ')。setScale(2,RoundingMode。半_下)- 123.12

  新的BigDecimal('123.125 ')。setScale(2,RoundingMode。半_下)- 123.12

  4.比较大小

  等于:newbigdecimal ('123.123 ')。compare to(newbigdecimal(' 123.123 ')==0-true

  新的BigDecimal('123.123 ')。compare to(new BigDecimal(' 123.123 ')-0

  如果compareTo的结果为0,则证明两个对象相等(当左不等于右时,第一个表达式为假)

  小于:newbigdecimal ('123.122 ')。compare to(newbigdecimal(' 123.123 '))0-true

  新的BigDecimal('123.122 ')。compare to(new BigDecimal(' 123.123 ')--1

  如果compareTo的结果为-1,则证明左侧小于右侧(当左侧大于等于右侧时,第一个表达式为假)

  大于:newbigdecimal ('123.124 ')。compare to(newbigdecimal(' 123.123 '))0-true

  新的BigDecimal('123.124 ')。compare to(new BigDecimal(' 123.123 ')-1

  如果compareTo的结果为1,则证明左侧大于右侧(当左侧小于或等于右侧时,第一个表达式为假)

二维码