本章目标
可以使用BigInteger操作大整数
可以使用BigDecimal指定小数的保留位数
BigInteger
如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作。
验证BigInteger
import java.math.BigInteger; public class BigIntegerDemo01 { public static void main(String[] args) { BigInteger bi1 =new BigInteger("123456789");//定义 BigInteger 对象 BigInteger bi2 =new BigInteger("987654321");//定义 BigInteger 对象 System.out.println("加法操作:"+bi2.add(bi1));//加法操作 System.out.println("减法操作:"+bi2.subtract(bi1));//减法操作 System.out.println("乘法操作:"+bi2.multiply(bi1));//乘法操作 System.out.println("除法操作:"+bi2.divide(bi1));//除法操作 System.out.println("最大数:"+bi2.max(bi1));//求出最大值 System.out.println("最小数:"+bi2.min(bi1));//求出最小值 BigInteger result[] = bi2.divideAndRemainder(bi1);//除法操作 System.out.println("商是:"+result[0]+"; 余数是:"+result[1]); } /* 结果: * 加法操作:1111111110 * 减法操作:864197532 * 乘法操作:121932631112635269 * 除法操作:8 * 最大数:987654321 * 最小数:123456789 * 商是:8; 余数是:9 * */ }
BigDecimal
对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算的结果,则必须使用BigDecimal类。
四舍五入
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.err.println("加法运算:"+MyMath.round(MyMath.add(10.345, 3.333),1)); System.err.println("乘法运算:"+MyMath.round(MyMath.mul(10.345, 3.333),3)); System.err.println("除法运算:"+MyMath.div(10.345, 3.333,3)); System.err.println("减法运算:"+MyMath.round(MyMath.sub(10.345, 3.333),3)); } /* 结果: * 加法运算:13.7 * 乘法运算:34.48 * 除法运算:3.104 * 减法运算:7.012 * */ }
相关推荐
031110_【第11章:Java常用类库】_大数操作(BigIntger、BigDecimal)笔记
在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确...本文将介绍Java中的大数类BigDecimal及其八种舍入模式,有需要的可以参考借鉴。
之前写过用vector、string实现大数加法,现在用java的BigDecimal类,代码简单很多。但是在online-judge上,java的代码运行时间和内存大得多
本版中只有一个用于生产环境的文件:BigDecimal-all-last.min.js,大小为26K,如果WEB服务器打开GZIP压缩,可以减小至7K,如需完整版本请移步至:http://download.csdn.net/detail/aquaqu2009/4575230 简单用法: ...
其中BigDecimal-all-last.min.js大小为:26KB GZIP压缩后7K,完全可以用于实际生产过程中。 简单例子: var a = new BigDecimal("1500"); var b = new BigDecimal("33"); alert(a.multiply(b)); alert&#...
build/BigDecimal-all-last.js build/BigDecimal-all-last.min.js build/preserved_multiline_comment_begin.closure.js build/preserved_multiline_comment_begin.yui.js build/preserved_mult
javascript的数值精确计算类bigdecimal,改编自java的bigdecimal
BigDecimal工具类.docx
alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...
BigDecimal的计算
java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等
复杂的BigDecimal计算,需要开方的式子,可输入结果精确位数
java丢失精度,bigdecimal加减乘除
BigDecimal类,常用方法是用介绍
BigDecimal向Double转换
Java中BigInteger的数学运算,BigDecimal 加减乘除运算,Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大...
NULL 博文链接:https://ollevere.iteye.com/blog/1528655
js中操作Bigdecimal类,包含所有java中bigdecimal的操作,加减乘除,四舍五入,比较等。
BigDecimal b1=new BigDecimal("1.0"); BigDecimal b2=new BigDecimal("1.00"); boolean t=b1.equals(b2); 怎么样,你认为t是true还是false?它还真是false。BigDecimal的大小比较,1.0与1.00是不相等的,得采用...