栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

BigDecimal——大十进制-货币型-双精度

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

BigDecimal——大十进制-货币型-双精度

  • bidDecimal
    在java.math包中提供了BigDecimal,用来对超过16位有效的数进行精确运算,
    double双精度变量可以处理16位有效数字,float和double只能做工程计算,但是在商业中要用BidDecimal来处理数据,
    BigDecimal创建的是对象,不能使用运算符来直接进行数学运算,必须要调用其方法来进行运算,参数必须是bigDecimal对象,
  • 构造器 创建对象
BigDecimal bigDecimal = new BigDecimal(123);//参数是int
BigDecimal bigDecimal1 = new BigDecimal(12341513113L);//参数是long
BigDecimal bigDecimal2 = new BigDecimal("987654321");//参数是String
BigDecimal bigDecimal3 = new BigDecimal(2.3);//参数是double
System.out.println(bigDecimal);
System.out.println(bigDecimal1);
System.out.println(bigDecimal2);
System.out.println(bigDecimal3);


注意参数为double类型的数据,带入到构造器中其结果有一定的不可预知性,
如果参数必须是double类型可以转化成字符串啊,

  • BigDecimal加减乘除运算
    对于常用的加减乘除运算,bigdecimal类提供了相对应的方法。
    public BigDecimal add(Decimal value);//加法;
    subtract(value) ;//减法
    multiply(value);//乘法
    divide(vlaue);//除法
package com.bjsxt;
import com.bjsxt.pojo.Users;

import java.math.BigDecimal;

import static java.math.BigDecimal.*;

public class Test {
    public static void main(String[] args) {
        BigDecimal a = new BigDecimal(4.4);
        BigDecimal b = new BigDecimal(1.1);
        BigDecimal c = new BigDecimal("5");
        BigDecimal d = new BigDecimal(2);
        System.out.println(a.divide(b,0,ROUND_DOWN));//4.4/1.1
        System.out.println(a.add(b));//4.4+1.1
        System.out.println(a.subtract(b));//4.4-1.1
        System.out.println(a.multiply(d));//4.4*2
        
        // ROUND_CEILING; //向正无穷方向舍入
        // ROUND_DOWN; //向零方向舍入
        // ROUND_FLOOR;//向负无穷舍入
        // ROUND_UNNECESSARY;//计算结果是精确的
    }
}

  • 格式化
package com.bjsxt;
import com.bjsxt.pojo.Users;

import java.math.BigDecimal;
import java.text.NumberFormat;

import static java.math.BigDecimal.*;

public class Test {
    public static void main(String[] args) {
        
        BigDecimal a = new BigDecimal(4.4);
        BigDecimal b = new BigDecimal(0.1111);
        BigDecimal c = new BigDecimal("5");
        BigDecimal d = new BigDecimal(3);
        BigDecimal he = a.add(b);
        //建立货币格式化
        NumberFormat currencyInstance = NumberFormat.getCurrencyInstance();
        //建立百分比格式化
        NumberFormat percentInstance = NumberFormat.getPercentInstance();
        percentInstance.setMaximumFractionDigits(3);//百分比的小数点后几位
        System.out.println(currencyInstance.format(a));
        System.out.println(currencyInstance.format(he));
        System.out.println(percentInstance.format(a));
        System.out.println(percentInstance.format(b));



    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号