1、对于不需要准确计算精度的数字,可以直接使用浮点或双精度,但如果需要准确计算结果,则需要使用BigDecimal类
2、运算速度比普通的、----、*、/快
3、基本方法说明
将add(BigDecimal ) bigdecimal对象中的值相加并返回此对象。
减去subtract(BigDecimal ) bigdecimal对象的值并返回此对象。
multiply(BigDecimal )将bigdecimal对象中的值相乘并返回该对象。
将divide(BigDecimal ) bigdecimal对象中的值相除并返回此对象。
toString ()将BigDecimal对象中的数字转换为字符串。
doubleValue ()以双精度数返回BigDecimal对象的值。
floatValue ()以单精度数返回BigDecimal对象的值。
longValue ()以长整数形式返回BigDecimal对象的值。
intValue ) )以整数形式返回BigDecimal对象的值。
money.divide(newbigdecimal(100 ),2,BigDecimal.ROUND_HALF_DOWN ); 要设置小数点的格式,请保留两位数(100除外),然后使用四舍五入4,BigDecimal.setScale )方法
setscale(1)表示保留小数点后一位,默认情况下四舍五入
如果直接删除多余的小数(如2.35 ),则setscale(1,BigDecimal.ROUND_DOWN )为2.3
设置比例(1,BigDecimal.ROUND_UP )进位处理,2.35变为2.4
如果将setscale(1,BigDecimal.ROUND_HALF_UP )四舍五入为2.35,则为2.4
setscaler(1,BigDecimal.ROUND_HALF_DOWN )经过四舍五入,2.35变为2.3,如果为5,则为注释:
scale是指你的小数点后的位数。 例如,如果是123.456,则score为3。
score ()是BigDecimal类的方法吧。
例如, bigdecimal b=new bigdecimal (' 123.456 );
b.scale (),回来的是3。
roundingMode是小数预约模式。 这些都是BigDecimal的常数字段,有很多种。
例如,BigDecimal.ROUND_HALF_UP表示4舍5入。
pubilcbigdecimaldivide (bigdecimal divisor,int scale,int rounding模式) )。
我使用一个BigDecimal对象除以divisor的结果,要求结果中剩下scale个小数位数。
roundingMode指示预约模式是什么、四舍五入还是其他。 请自己选择。4:对于一般add、subtract、multiply方法的小数位格式化如下:
bigdecimal mdata=new bigdecimal (9.655 ) ).setScale(2) 2,BigDecimal.ROUND_HALF_UP;
5、与0比较
标准做法
bigdecimal big _ decimal=new bigdecimal ('3);
intr=big _ decimal.com Pareto (bigdecimal.zero ); //0,与Zero进行比较
if(r==0)//等于
if(r==1) /以上
小于if(r==-1 )//
或者
是否为if (big _ decimal.equals (bigdecimal.zero ) )//0
3358 www.Sina.com/viewplaincopybigdecimalad=new bigdecimal (' 20 );
bigdecimalsu=newbigdecimal('10 );
bigdecimalmu=newbigdecimal('5);
bigdecimaldi=newbigdecimal('30 );
bigdecimalas=ad.add(su; //正
bigdecimalsa=ad.subtract(su ).subtract ) mu; //负
bigdecimalMD=mu.multiply(di; //乘坐
bigdecimalDM=di.divide(mu; //除外
使用System.out.println (正as(as )负sa )负MD: ) MD (DM : ) DM除外);