double类型数据运算

  1. import java.math.BigDecimal;    
  2.     
  3. public class Arith {    
  4. private static final int DEF_DIV_SCALE = 10;    
  5.     
  6. /**  
  7. * * 两个Double数相加 *  
  8. *   
  9. * @param v1 *  
  10. * @param v2 *  
  11. * @return Double  
  12. */    
  13. public static Double add(Double v1, Double v2) {    
  14.    BigDecimal b1 = new BigDecimal(v1.toString());    
  15.    BigDecimal b2 = new BigDecimal(v2.toString());    
  16.    return new Double(b1.add(b2).doubleValue());    
  17. }    
  18.     
  19. /**  
  20. * * 两个Double数相减 *  
  21. *   
  22. * @param v1 *  
  23. * @param v2 *  
  24. * @return Double  
  25. */    
  26. public static Double sub(Double v1, Double v2) {    
  27.    BigDecimal b1 = new BigDecimal(v1.toString());    
  28.    BigDecimal b2 = new BigDecimal(v2.toString());    
  29.    return new Double(b1.subtract(b2).doubleValue());    
  30. }    
  31.     
  32. /**  
  33. * * 两个Double数相乘 *  
  34. *   
  35. * @param v1 *  
  36. * @param v2 *  
  37. * @return Double  
  38. */    
  39. public static Double mul(Double v1, Double v2) {    
  40.    BigDecimal b1 = new BigDecimal(v1.toString());    
  41.    BigDecimal b2 = new BigDecimal(v2.toString());    
  42.    return new Double(b1.multiply(b2).doubleValue());    
  43. }    
  44.     
  45. /**  
  46. * * 两个Double数相除 *  
  47. *   
  48. * @param v1 *  
  49. * @param v2 *  
  50. * @return Double  
  51. */    
  52. public static Double div(Double v1, Double v2) {    
  53.    BigDecimal b1 = new BigDecimal(v1.toString());    
  54.    BigDecimal b2 = new BigDecimal(v2.toString());    
  55.    return new Double(b1.divide(b2, DEF_DIV_SCALE, BigDecimal.ROUND_HALF_UP)    
  56.      .doubleValue());    
  57. }    
  58.     
  59. /**  
  60. * * 两个Double数相除,并保留scale位小数 *  
  61. *   
  62. * @param v1 *  
  63. * @param v2 *  
  64. * @param scale *  
  65. * @return Double  
  66. */    
  67. public static Double div(Double v1, Double v2, int scale) {    
  68.    if (scale < 0) {    
  69.     throw new IllegalArgumentException(    
  70.       "The scale must be a positive integer or zero");    
  71.    }    
  72.    BigDecimal b1 = new BigDecimal(v1.toString());    
  73.    BigDecimal b2 = new BigDecimal(v2.toString());    
  74.    return new Double(b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue());    
  75. }    
  76. }    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值