`

数学运算工具类

 
阅读更多
Java代码
  1. importjava.math.BigDecimal;
  2. publicclassNumberUtil{
  3. privatestaticfinalintDEFAULT_DIV_SCALE=10;
  4. /**
  5. *相加
  6. *@paramv1
  7. *@paramv2
  8. *@returndouble
  9. */
  10. publicstaticdoubleadd(doublev1,doublev2)
  11. {
  12. BigDecimalb1=newBigDecimal(Double.toString(v1));
  13. BigDecimalb2=newBigDecimal(Double.toString(v2));
  14. returnb1.add(b2).doubleValue();
  15. }
  16. publicstaticStringadd(Stringv1,Stringv2)
  17. {
  18. BigDecimalb1=newBigDecimal(v1);
  19. BigDecimalb2=newBigDecimal(v2);
  20. returnb1.add(b2).toString();
  21. }
  22. /**
  23. *相减
  24. *@paramv1
  25. *@paramv2
  26. *@return
  27. */
  28. publicstaticdoublesubtract(doublev1,doublev2)
  29. {
  30. BigDecimalb1=newBigDecimal(Double.toString(v1));
  31. BigDecimalb2=newBigDecimal(Double.toString(v2));
  32. returnb1.subtract(b2).doubleValue();
  33. }
  34. publicstaticStringsubtract(Stringv1,Stringv2)
  35. {
  36. BigDecimalb1=newBigDecimal(v1);
  37. BigDecimalb2=newBigDecimal(v2);
  38. returnb1.subtract(b2).toString();
  39. }
  40. /**
  41. *相乘
  42. *@paramv1
  43. *@paramv2
  44. *@return
  45. */
  46. publicstaticdoublemultiply(doublev1,doublev2)
  47. {
  48. BigDecimalb1=newBigDecimal(Double.toString(v1));
  49. BigDecimalb2=newBigDecimal(Double.toString(v2));
  50. returnb1.multiply(b2).doubleValue();
  51. }
  52. publicstaticStringmultiply(Stringv1,Stringv2)
  53. {
  54. BigDecimalb1=newBigDecimal(v1);
  55. BigDecimalb2=newBigDecimal(v2);
  56. returnb1.multiply(b2).toString();
  57. }
  58. /**
  59. *相除
  60. *@paramv1
  61. *@paramv2
  62. *@returndouble
  63. */
  64. publicstaticdoubledivide(doublev1,doublev2)
  65. {
  66. returndivide(v1,v2,DEFAULT_DIV_SCALE);
  67. }
  68. publicstaticdoubledivide(doublev1,doublev2,intscale)
  69. {
  70. returndivide(v1,v2,scale,BigDecimal.ROUND_HALF_EVEN);
  71. }
  72. publicstaticdoubledivide(doublev1,doublev2,intscale,intround_mode){
  73. if(scale<0)
  74. {
  75. thrownewIllegalArgumentException(
  76. "Thescalemustbeapositiveintegerorzero");
  77. }
  78. BigDecimalb1=newBigDecimal(Double.toString(v1));
  79. BigDecimalb2=newBigDecimal(Double.toString(v2));
  80. returnb1.divide(b2,scale,round_mode).doubleValue();
  81. }
  82. publicstaticStringdivide(Stringv1,Stringv2)
  83. {
  84. returndivide(v1,v2,DEFAULT_DIV_SCALE);
  85. }
  86. publicstaticStringdivide(Stringv1,Stringv2,intscale)
  87. {
  88. returndivide(v1,v2,DEFAULT_DIV_SCALE,BigDecimal.ROUND_HALF_EVEN);
  89. }
  90. publicstaticStringdivide(Stringv1,Stringv2,intscale,intround_mode)
  91. {
  92. if(scale<0)
  93. {
  94. thrownewIllegalArgumentException(
  95. "Thescalemustbeapositiveintegerorzero");
  96. }
  97. BigDecimalb1=newBigDecimal(v1);
  98. BigDecimalb2=newBigDecimal(v2);
  99. returnb1.divide(b2,scale,round_mode).toString();
  100. }
  101. publicstaticdoubleround(doublev,intscale)
  102. {
  103. returnround(v,scale,BigDecimal.ROUND_HALF_EVEN);
  104. }
  105. publicstaticdoubleround(doublev,intscale,intround_mode)
  106. {
  107. if(scale<0)
  108. {
  109. thrownewIllegalArgumentException(
  110. "Thescalemustbeapositiveintegerorzero");
  111. }
  112. BigDecimalb=newBigDecimal(Double.toString(v));
  113. returnb.setScale(scale,round_mode).doubleValue();
  114. }
  115. publicstaticStringround(Stringv,intscale)
  116. {
  117. returnround(v,scale,BigDecimal.ROUND_HALF_EVEN);
  118. }
  119. publicstaticStringround(Stringv,intscale,intround_mode)
  120. {
  121. if(scale<0)
  122. {
  123. thrownewIllegalArgumentException(
  124. "Thescalemustbeapositiveintegerorzero");
  125. }
  126. BigDecimalb=newBigDecimal(v);
  127. returnb.setScale(scale,round_mode).toString();
  128. }
  129. publicstaticvoidmain(String[]args){
  130. System.out.println(2.21-2);
  131. System.out.println(7*0.8);
  132. System.out.println(subtract(312.21,312));
  133. System.out.println(multiply(7,0.8));
  134. }
  135. }
分享到:
评论

相关推荐

    ArithmeticUtils用于高精确处理常用的数学运算工具类

    ArithmeticUtils用于高精确处理常用的数学运算工具类 提供精确的加法运算 提供精确的减法运算 提供精确的乘法运算 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入 ...

    高精确处理常用的数学运算工具类

    高精确处理常用的数学运算工具类,包含多种入参场景的加减乘除运算方法,百分比,等。 可用于精确的数学计算,比如金额等数据运算。也可以基于此工具类按需二次开发,提升效率。

    java常用工具类和接口返回对象.zip

    5. **MathUtil**:数学运算工具类,可能提供了一些高级的数学计算,比如最大值、最小值、平均值、幂运算、三角函数等,或者是一些统计相关的计算。 6. **ReflectUtil**:反射工具类,用于动态地获取类的信息,创建...

    java房贷计算工具类(商贷、公积金、组合贷)

    `ArithUtil.java`:这个名字暗示这可能是一个数学运算工具类,通常用于提供高效的数学计算或复杂的算法实现。可能包含如复利计算、利率转换为月利率等辅助函数。例如: 1. `convertAnnualRateToMonthly(double ...

    util类

    数学运算工具类,可能包含一些常用的数学函数,如最大值、最小值计算、幂运算、取模、随机数生成等。这类工具类可以方便地进行复杂的数学计算。 7. **JsonDataTool.java**: JSON数据处理工具类,通常包含JSON...

    bash中的数学运算

    而在Linux或类Unix系统中,Shell提供了多种方式进行数学运算,包括`expr`、`bc`、`awk`、`perl`等工具。本文将详细介绍这些工具的基本使用方法以及它们之间的区别。 #### expr:基本的整数运算 `expr` 是一种简单...

    最强工具栏

    3. **数学运算工具类**:进行数学计算,如随机数生成、统计分析等。 4. **文件和I/O工具类**:简化文件读写、目录操作、流处理等。 5. **网络工具类**:处理HTTP请求、下载、上传等网络相关的任务。 6. **JSON和XML...

    AmountUtil.zip_AmountUtil_数学计算工具类

    `AmountUtil`是一个专门用于数学计算的工具类,它集成了多种功能,以帮助开发者在Java项目中轻松地进行数学运算。这个类的设计理念是提供简洁的接口,以及稳定、高效和准确的计算逻辑。 `AmountUtil`的核心功能主要...

    VHDL数学运算库1.0.zip_vhdl 数学_vhdl 数学库_vhdl 设计 _数学运算

    总的来说,VHDL数学运算库1.0是一个旨在帮助VHDL设计者进行高效硬件级别的数学计算的工具。通过这个库,设计者可以实现更高性能、更精确的数字系统,特别是在信号处理、图像处理、通信系统等领域,其中往往需要进行...

    BigDecimal工具类.docx

    BigDecimal工具类是Java中用于高精确处理常用数学运算的工具类。该工具类提供了多种精确的数学运算方法,包括加法、减法、乘法和除法等。 在BigDecimal工具类中,我们可以看到多个重载的方法,例如add方法和sub方法...

    一个简单的数学运算库c#版

    总之,这个C#数学运算库是一个实用的工具,它整合了矩阵计算和几何运算的功能,适用于需要进行数学处理的各种应用场景,如科学计算、游戏开发、图像处理等。开发者可以借助这个库,简化代码,提高效率,专注于解决...

    java各种工具类:精确的数学运算、将String进行base64编码解码、树的递归、判断是否为空等

    java各种工具类:精确的数学运算、将String进行base64编码解码、树的递归等 包含:ArithmeticUtils、Base64Util、BitConverterUtil、BuildTreeFor1077、CaculateDistanceUtil、CloseUtil、ConvertUtil、...

    个人用的C#日常开发工具类

    - **数学和算法工具类**:包含一些数学计算和常见算法实现,如矩阵运算、排序算法、搜索算法等。 学习和利用这些工具类,开发者可以提升编码速度,同时保证代码质量。在实际开发中,不断积累和优化工具类,也是提升...

    互联网思维下中高段小学数学运算能力提升的实践与研究.pdf

    本研究中,周冰洋通过具体的实践与研究,阐述了在互联网思维下中高段小学数学运算能力的提升策略。 首先,互联网思维中的“客户思维”与以学生为本的教育理念不谋而合。在互联网时代,用户是服务的核心,教育亦是...

    28个java常用的工具类源码

    4. **数学计算工具类**:如MathUtils,包含了一些数学运算的优化实现,如最大值、最小值、幂运算等。 5. **文件操作工具类**:如FileUtils,提供读写文件、创建目录、复制文件等常用功能,简化了文件操作。 6. **...

    java常用工具类汇总

    - 数学工具类可能包含一些高级的数学计算,如统计、几何、矩阵运算、随机数生成等。`MathUtils`类可能提供了Java标准库`Math`类没有的数学函数,如幂运算、取余、高精度计算等。 - 可能还包括线性代数运算,如向量...

    ArithmeticUtils-高精度数学运算.pdf

    ArithmeticUtils是一个封装了多种高精度数学运算方法的工具类,它利用了BigDecimal的特性,提供了一系列的加、减、乘、除等运算方法。通过封装这些方法,ArithmeticUtils简化了在Java程序中进行高精度运算的过程。 ...

    第4章 数学运算

    源码和工具的标签暗示我们将讨论实现这些数学运算的具体代码和可能使用的辅助软件。例如,Python中的`math`库提供了大量数学函数,包括平方根、立方根、幂运算等,而`numpy`库则支持高效的多维数组操作,适合进行大...

    C#200个基础工具类大全.rar

    3. **数学计算**:工具类可能包含一些数学运算,如幂运算、取余数、最小最大值计算等,这些在算法和计算密集型应用中非常有用。 4. **文件和目录操作**:文件操作类通常有创建、删除、复制、移动文件,以及读写文件...

    Epulis开发工具类

    5. **数学运算工具**:包括各种数学运算,如随机数生成、数值比较、幂运算等。 6. **网络工具**:提供网络连接、请求发送、数据传输等功能,简化网络编程。 7. **反射工具**:帮助开发者更加灵活地操作类、对象及...

Global site tag (gtag.js) - Google Analytics