java.math.BigDecimal类
BigDecimal类用于高精度计算。一般的float型和Double型数据只可以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到java.math.BigDecimal类,它支持任何精度的定点数,可以用它来精确计算货币值。
有几点值得注意一下,
1、BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。
2、方法中的参数也必须是BigDecimal的对象。
     如:two.add(2)就是一种错误的操作,因为2没有变为BigInteger型。要写为BigInteger two=new BigInteger("2");
1、BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode);
/**
* 两个BigDecimal相除
* 返回一个BigDecimal,精确位数为scale指定值,舍入方式为roundingMode
* ROUND_HALF_UP:向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6(四舍五入)
*/
eg:
BigDecimal bd1 = new BigDecimal(Double.toString(v1));
          BigDecimal bd2 = new BigDecimal(Double.toString(v2));  
double pricediscount=bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
* 两个BigDecimal相加
* 返回一个BigDecimal,舍入方式为mc
*/
eg:
BigDecimal bd1 = new BigDecimal(Double.toString(v1));
          BigDecimal bd2 = new BigDecimal(Double.toString(v2));  
double pricediscount=bd1.add(bd2).doubleValue().doubleValue();
其他方法参照
| 参数类型为 MathContext 的 java.math 中的方法 | |
|---|---|
|  BigDecimal | BigDecimal.abs(MathContext mc)返回其值为此 BigDecimal 绝对值的 BigDecimal(根据上下文设置进行舍入)。 | 
|  BigDecimal | BigDecimal.add(BigDecimal augend, MathContext mc)返回其值为 (this + augend) 的 BigDecimal(根据上下文设置进行舍入)。 | 
|  BigDecimal | BigDecimal.divide(BigDecimal divisor, MathContext mc)返回其值为 (this / divisor) 的 BigDecimal(根据上下文设置进行舍入)。 | 
|  BigDecimal | BigDecimal.divideAndRemainder(BigDecimal divisor, MathContext mc)返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟根据上下文设置对两个操作数进行舍入计算所得到的 remainder 的结果。 | 
|  BigDecimal | BigDecimal.divideToIntegralValue(BigDecimal divisor, MathContext mc)返回 BigDecimal,其值为 (this / divisor) 的整数部分。 | 
|  BigDecimal | BigDecimal.multiply(BigDecimal multiplicand, MathContext mc)返回其值为 (this × multiplicand) 的 BigDecimal(根据上下文设置进行舍入)。 | 
|  BigDecimal | BigDecimal.negate(MathContext mc)返回其值为 (-this) 的 BigDecimal(根据上下文设置进行舍入)。 | 
|  BigDecimal | BigDecimal.plus(MathContext mc)返回其值为 (+this) 的 BigDecimal(根据上下文设置进行舍入)。 | 
|  BigDecimal | BigDecimal.pow(int n, MathContext mc)返回其值为 (thisn) 的 BigDecimal。 | 
|  BigDecimal | 
 | 
|  BigDecimal | 
 返回根据 MathContext 设置进行舍入后的 BigDecimal。 | 
|  BigDecimal | 
 返回其值为 (this - subtrahend) 的 BigDecimal(根据上下文设置进行舍入)。 | 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号