概述
1.
double和float类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算
四则运算
public class BigDecimalDemo { public static void main(String[] args) { function_1(); } /* * BigDecimal实现除法运算 * divide(BigDecimal divisor, int scale, int roundingMode) * int scale : 保留几位小数 * int roundingMode : 保留模式 * 保留模式 阅读API文档 * static int ROUND_UP 向上+1 * static int ROUND_DOWN 直接舍去 * static int ROUND_HALF_UP >= 0.5 向上+1 * static int ROUND_HALF_DOWN > 0.5 向上+1 ,否则直接舍去 */ public static void function_1(){ BigDecimal b1 = new BigDecimal("1.0301"); BigDecimal b2 = new BigDecimal("100"); //计算b1/b2的商,调用方法divied BigDecimal bigDiv = b1.divide(b2,2,BigDecimal.ROUND_HALF_UP);//0.01301 System.out.println(bigDiv); } /* * BigDecimal实现三则运算 * + - * */ public static void function(){ BigDecimal b1 = new BigDecimal("0.09"); BigDecimal b2 = new BigDecimal("0.01"); //计算b1+b2的和,调用方法add BigDecimal bigAdd = b1.add(b2); System.out.println(bigAdd); BigDecimal b3 = new BigDecimal("1"); BigDecimal b4 = new BigDecimal("0.32"); //计算b3-b2的差,调用方法subtract BigDecimal bigSub = b3.subtract(b4); System.out.println(bigSub); BigDecimal b5 = new BigDecimal("1.015"); BigDecimal b6 = new BigDecimal("100"); //计算b5*b6的成绩,调用方法 multiply BigDecimal bigMul = b5.multiply(b6); System.out.println(bigMul); } }
/* * 计算结果,未知 * 原因: 计算机二进制中,表示浮点数不精确造成 * 超级大型的浮点数据,提供高精度的浮点运算, BigDecimal System.out.println(0.09 + 0.01);//0.09999999999999999 System.out.println(1.0 - 0.32);//0.6799999999999999 System.out.println(1.015 * 100);//101.49999999999999 System.out.println(1.301 / 100);//0.013009999999999999 */
2.
java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,
超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.
在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.
/* * 超级大的整数运算 * 超过long取值范围整数,封装成BigInteger类型的对象 */ public class BigIntegerDemo { public static void main(String[] args) { function_1(); } /* * BigInteger对象的四则运算 * 调用方法计算,计算结果也只能是BigInteger对象 */ public static void function_1(){ BigInteger b1 = new BigInteger("5665464516451051581613661405146"); BigInteger b2 = new BigInteger("965855861461465516451051581613661405146"); //计算 b1+b2对象的和,调用方法 add BigInteger bigAdd = b1.add(b2);//965855867126930032902103163227322810292 System.out.println(bigAdd); //计算b1-b2对象的差,调用方法subtract BigInteger bigSub = b1.subtract(b2); System.out.println(bigSub); //计算b1*b2对象的乘积,调用方法multiply BigInteger bigMul = b1.multiply(b2); System.out.println(bigMul); //计算b2/b1对象商,调用方法divied BigInteger bigDiv = b2.divide(b1); System.out.println(bigDiv); } /* * BigInteger类的构造方法 * 传递字符串,要求数字格式,没有长度限制 */ public static void function(){ BigInteger b = new BigInteger("8465846668464684562385634168451684568645684564564"); System.out.println(b); BigInteger b1 = new BigInteger("5861694569514568465846668464684562385634168451684568645684564564"); System.out.println(b1); }
转载于:https://www.cnblogs.com/zimo-bwl1029-s/p/9338665.html
最后
以上就是单身宝贝为你收集整理的java-BigInteger类,和BigDecimal类的全部内容,希望文章能够帮你解决java-BigInteger类,和BigDecimal类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复