我是靠谱客的博主 独特鞋垫,最近开发中收集的这篇文章主要介绍JAVA BigInteger和BigDecimal类常用方式BigIntegerBigDecimal,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

BigInteger

BigInteger是用来计算超大的整型数据的。

这个类计算出的所有数据只会是整型

    public static void main(String[] args) {
    	//两种创建方式
    	BigInteger ten = new BigInteger("10");
    	BigInteger two = new BigInteger("2");
    	BigInteger three = new BigInteger("3");
    	//只能创建某几个数
    	BigInteger one = BigInteger.TEN;
    	
    	BigInteger res;
    	//加法
    	res = ten.add(two);
    	//res =10+2=12
    	
    	//减法
    	res = ten.subtract(two);
    	//res = 10-2=8;
    	
    	//乘法
    	res = ten.multiply(two);
    	//res = 10*2=20;
    	
    	//除法
    	res = ten.divide(two);
    	// res = 10/2 =5 //小数向上取整
    	
    	//求余
    	res = ten.mod(three);
    	// res = 10%3 =1
    	
    	//最小值Min、最大值Max、就不演示了
    	
    	//求次方
    	res = ten.pow(3);
    	//res = 10*10*10//10的三次方
    }

BigDecimal

可以说是一个可以控制精确度的BigInteger

可以按照不同的方式去求精准度

使用不同的方式去求他的精度

BigDecimal small = new BigDecimal("1.1234567");

四舍五入方式

//small的精确到小数点5位
    	//ROUND_HALF_UP 这个参数代表以四舍五入的方式进行精确
    	res = small.setScale(5,BigDecimal.ROUND_HALF_UP);
    	//res = 1.12346

向下取精确度的方式(直接截断)

//ROUND_DOWN 向下取整、、直接截断第5位,不管后面是几
    	res = small.setScale(5,BigDecimal.ROUND_DOWN);
    	//res = 1.12345

向上取精确度的方式 ,,后面的一位只要有数就进位

//ROUND_UP 向上取整,比如精确到第3位,只要原来第三位后面有数,就默认进位
    	res = small.setScale(3,BigDecimal.ROUND_UP);
    	//res = 1.124
    	//不用进位
    	res = small.setScale(7,BigDecimal.ROUND_UP);
    	//res = 1.1234567

BIgDecimal的其他四则运算与BigIntegr一致

主要是除法

可以除尽的除法,运算没问题

        BigDecimal ten = new BigDecimal("15");
    	BigDecimal two = new BigDecimal("10");
    	
    	BigDecimal res = ten.divide(two);
    	//res = 1.5

如果遇见除不尽的,结果为无限小数一定要确定精确度

否则会报错

        BigDecimal ten = new BigDecimal("10");
    	BigDecimal three = new BigDecimal("3");
    	
    	//四舍五入保留3位小数
    	BigDecimal res = ten.divide(three,3,BigDecimal.ROUND_HALF_UP);
    	System.out.println(res);

另外需要注意的

        double ten =10.123;
    	BigDecimal t = new BigDecimal(ten);
    	System.out.println(t);

结果不是10.123

而是。10.1229999999999993320898283855058252811431884765625

因为,double类型在java内存中存储的就是这样的,只是我们平时看不出来

,转换成BigDecimal时把他的原型转换了出来。

需要注意........想要原来的值可以先转换成String

double ten =10.123;
    	BigDecimal t = new BigDecimal(String.valueOf(ten));
    	System.out.println(t);

最后

以上就是独特鞋垫为你收集整理的JAVA BigInteger和BigDecimal类常用方式BigIntegerBigDecimal的全部内容,希望文章能够帮你解决JAVA BigInteger和BigDecimal类常用方式BigIntegerBigDecimal所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部