(2)当是形参为浮点数时,推荐先将浮点数转换为字符串类型然后放入构造函数中 。
例如:new (.(value))或者((value).()) 。
代码如下图所示:
@Testvoid contextLoads() {BigDecimal bigDecimal = new BigDecimal(Double.toString(2.1));BigDecimal bigDecimal1 = new BigDecimal(new Double(2.1).toString());System.out.println("bigDecimal值为: " + bigDecimal);System.out.println("bigDecimal1值为: " + bigDecimal1);}/***控制台输出:*bigDecimal值为: 2.1*bigDecimal1值为: 2.1*/
4.的概括及四则运算的应用
位置: java. math包中 。
作用:精确计算浮点数 。
创建方式:bd=new (“1.0”);
四则运算:
●Biadd ( bd)加
● fmal(Bibd) 减
● imal( bd) 乘
● div ide ( bd)除
除法:( bd, int scal,mode)
●参数scal :指定精确到小数点后几位 。
参数mode:
●指定小数部分的取舍模式,通常采用四舍五入的模式,
●取值为.HALF_ UP 。
例:
r6=new ("10") .(new ("3"),2,.);
.out.(r6);//3.33
package java_se.java_jinjie.neibulei.demo07;import java.math.BigDecimal;public class Demo01 {public static void main(String[] args) {double d1=1.0;double d2=0.9;System.out.println(d1-d2);//0.09999999999999998//面试题double result=(1.4-0.5)/0.9;System.out.println(result);//0.9999999999999999//BigDecimal,大的浮点数精确计算BigDecimal bd1 = new BigDecimal("1.0");//一定要用字符串BigDecimal bd2 = new BigDecimal("0.9");//一定要用字符串//减法.subtractBigDecimal r1 = bd1.subtract(bd2);System.out.println(r1);//0.1// 加法.addBigDecimal r2 = bd1.add(bd2);System.out.println(r2);//1.9//乘法.multiplyBigDecimal r3 = bd1.multiply(bd2);System.out.println(r3);//0.90// 除法.divide(1.4-0.5)/0.9BigDecimal r4=newBigDecimal("1.4").subtract(new BigDecimal("0.5")).divide(new BigDecimal("0.9"));System.out.println(r4);//1//除不尽时 x填保留位数 后面为四舍五入之意BigDecimal r5=new BigDecimal("10").divide(new BigDecimal("3"));System.out.println(r5);//算数异常(.ArithmeticException),因为除不断BigDecimal r6=new BigDecimal("10")// 保留2位小数 BigDecimal类的四舍五入.divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);System.out.println(r6);//3.33}}
5.总结
(1) 基本上每步运算都需要创建新的对象,比float和更加的损耗性能 。当处理比较重要和对精度有要求的数据(金额)时使用 。
(2)不推荐将浮点数作为形参传入构造函数,推荐使用字符串为形参传入构造函数 。
(3)当调用(除法)时,为了避免此java.lang.错误产生,可以调用 ( , int scale,) 也就是(new (value),保留小数点后几位小数,舍入模式)方法 。
6.Math类 Math常用方法 方法说明
PI
圆周率
E
自然数的底数
int abs(int a)
获取参数的绝对值
ceil( d)
获取大于或者等于参数的最小整数
floor( d)
获取小于或者等于参数的最大整数
long round( d)
获取对参数四舍五入
pow( a, b )
获取a的b次幂
sqrt( d)
获取参数的平方根
()
获取随机数,0.0-1.0之间
【1.String类空间概述】package java_se.java_jinjie.neibulei.demo08;public class TestMath1 {public static void main(String[] args) {//圆周率System . out. println("Math.PI ="+ Math.PI);//Math.PI =3.141592653589793//自然界底数System . out. println("Math.E = " + Math.E);//Math.E = 2.718281828459045//static int abs(int a)返回参数的绝对值System.out.println(Math.abs(-6));//6//static double ceil(double d) 返回大于或者等于参数的最小整数System.out.println(Math.ceil(12.3)); //向上取整数13.0//static double floor(double d)返回小于或者等于参数的最大整数System.out.println(Math.floor(5.5));//向下取整数5.0//static 1ong round(double d)对参数四舍五入long round = Math.round(5.5); //取整数部分参 数+0.5System.out.println("round="+ round);//6//static double pow(double a,double b ) a的b次幂System.out.println("Math. pow(2,3) = " + Math.pow(2, 3));//8//static double sqrt(double d) 参数的平方根System.out.println("Math. sqrt(4) ="+ Math.sqrt(3));//平方根(有兴趣可以去了解)1.7320508075688772System.out.println("================");// static double randomO 返回随机数0.0-1.0之间for (int x = 0; x
- 家庭垃圾分类小窍门 家庭垃圾分类小妙招有哪些
- 关于从svn上新下载的项目往往报类找不到,而类又存在的错误问题
- SVM 支持向量机简介+SVM15种场景分类实例
- Android通知工具类,含8.0通知适配,打开通知设置页面适配
- 办公空间设计不足之处有哪些
- spring boot网络空间安全实验教学示范中心网站 毕业设计源码111454
- 处女座男生喜欢女生的表现 处女座男生喜欢女生的类型
- 深度学习之电影二分类的情感问题
- 附源码 spring boot网络空间安全实验教学示范中心网站 毕业设计 1
- 附源码 springboot网络空间安全实验教学示范中心网站 毕业设计 111