zoukankan      html  css  js  c++  java
  • BigDecimal类的加减乘除

    BigDecimal类型(+ - * /)所用的属性

    11.10 BigDecimal类

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

    表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)

    普通

    除法

    范例:进行四舍五入的四则运算

    package org.lxh.demo11.numberdemo;
    import java.math.BigDecimal;
    class MyMath {
        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));
         }
    }
  • 相关阅读:
    托付和事件的使用
    在使用supervisord 管理tomcat时遇到的小问题
    无法安装vmware tools的解决方PLEASE WAIT! VMware Tools is currently being installed on your system. Dependin
    (转)Openlayers 2.X加载高德地图
    (转)openlayers实现在线编辑
    (转) Arcgis for js加载百度地图
    (转)Arcgis for js加载天地图
    (转) 基于Arcgis for Js的web GIS数据在线采集简介
    (转) Arcgis for js之WKT和GEOMETRY的相互转换
    (转)Arcgis for Js之Graphiclayer扩展详解
  • 原文地址:https://www.cnblogs.com/koal/p/4486295.html
Copyright © 2011-2022 走看看