• BigDecimal类(精度计算类)的加减乘除


    BigDecimal类

    对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作。BigDecimal类的常用方法如表11-15所示。

    BigDecimal类的常用方法

    序号

       

    类型

       

    1

    public BigDecimal(double val)

    构造

    将double表示形式转换

    为BigDecimal

    2

    public BigDecimal(int val)

    构造

    将int表示形式转换为

    BigDecimal

    3

    public BigDecimal(String val)

    构造

    将字符串表示

    形式转换为BigDecimal

    4

    public BigDecimal add(BigDecimal augend)

    普通

    加法

    5

    public BigDecimal subtract(BigDecimal
    subtrahend)

    普通

    减法

    6

    public BigDecimal multiply(BigDecimal
    multiplicand)

    普通

    乘法

    7

    public BigDecimal divide(BigDecimal
    divisor)

    普通

    除法

    进行四舍五入的四则运算demo.

    package test;

    import java.math.BigDecimal;

    class MyMathTest {

    public static double add(double d1, double d2)

    {        // 进行加法运算

             BigDecimal b1 = new BigDecimal(d1);

             BigDecimal b2 = new BigDecimal(d2);

    return b1.add(b2).doubleValue();

         }

    public static double sub(double d1, double d2)

    {        // 进行减法运算

             BigDecimal b1 = new BigDecimal(d1);

             BigDecimal b2 = new BigDecimal(d2);

    return b1.subtract(b2).doubleValue();

         }

    public static double mul(double d1, double d2)

    {        // 进行乘法运算

             BigDecimal b1 = new BigDecimal(d1);

             BigDecimal b2 = new BigDecimal(d2);

    return b1.multiply(b2).doubleValue();

         }

    public static double div(double d1,

    double d2,int len) {// 进行除法运算

             BigDecimal b1 = new BigDecimal(d1);

             BigDecimal b2 = new BigDecimal(d2);

    return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();

         }

    public static double round(double d,int len) {     // 进行四舍五入操作

             BigDecimal b1 = new BigDecimal(d);

             BigDecimal b2 = new BigDecimal(1);

    // 任何一个数字除以1都是原数字

    // ROUND_HALF_UP是BigDecimal的一个常量,

        • 表示进行四舍五入的操作
    • return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
    •      }
    • }
    • public class BigDecimalDemo01 {
    • public static void main(String[] args) {
    •          System.out.println("加法运算:" +MyMath.round(MyMath.add(10.345,3.333), 1));
    •      System.out.println("乘法运算:" +MyMath.round(MyMath.mul(10.345,3.333), 3));
    •  System.out.println("除法运算:" +MyMath.div(10.345, 3.333, 3));
    •  System.out.println("减法运算:" +MyMath.round(MyMath.sub(10.345,3.333), 3));
    •   }

    }

  • 相关阅读:
    开不了的窗_____window.open
    IIS项目发布完整流程
    理解MVC模式
    ASP.NET MVC 基础(01)
    C#之线程和并发
    vue时间格式化
    windows 2013 datacenter 安装sql server2008 r2兼容性
    SQL Server DBA十大必备工具使生活轻松
    ORACLE主要的系统表和系统视图
    Oracle中spool命令实现的两种方法比较
  • 原文地址:https://www.cnblogs.com/xubiao/p/5461697.html
Copyright © 2020-2023  润新知