11.10 BigDecimal 类(血干JAVA系类)

11.10 BigDecimal 类

在这里插入图片描述
使用BigDecimal的原因:不能精确【例子不合适,忽略吧】

package jiaqi;

public class demo347_1 
{
	public static void main(String[] args)
	{
		float f1 = 0.01f;
		float f2=0.000000000000001f;
		System.out.println(f1+f2);
	}
}

在这里插入图片描述
表11-15 BigDecimal的常用方法
在这里插入图片描述

【例11.36】进行四舍五入的四则运算

package jiaqi;

import java.math.BigDecimal;

class Mymath
{
	//不保留小数
	public static double add(double b1,double b2)
	{
		BigDecimal bd1 = new BigDecimal(b1);
		BigDecimal bd2 = new BigDecimal(b2);
		return bd1.add(bd2).doubleValue();
	}
	//不保留小数
	public static double sub(double b1,double b2)
	{
		BigDecimal bd1 = new BigDecimal(b1);
		BigDecimal bd2 = new BigDecimal(b2);
		return bd1.subtract(bd2).doubleValue();
	}
	//不保留小数
	public static double mul(double b1,double b2)
	{
		BigDecimal bd1 = new BigDecimal(b1);
		BigDecimal bd2 = new BigDecimal(b2);
		return bd1.multiply(bd2).doubleValue();
	}
	//保留小数
	public static double div(double b1,double b2,int len)
	{
		BigDecimal bd1 = new BigDecimal(b1);
		BigDecimal bd2 = new BigDecimal(b2);
		return bd1.divide(bd2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
	}
	//四舍五入【使用divide实现】------->用于 加减乘 保留,除  自带
	public static double round(double b,int len) 
	{
		BigDecimal bd1 = new BigDecimal(b);
		BigDecimal bd2 = new BigDecimal(1);
		//除1【保留位数】
		return bd1.divide(bd2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
	}
}

public class demo347_1 
{
	public static void main(String[] args)
	{
		System.out.println(Mymath.round(Mymath.add(10,3.3333),3));
		System.out.println(Mymath.round(Mymath.sub(10,3.3333),3));
		System.out.println(Mymath.round(Mymath.mul(10,3.3333),3));
		System.out.println(Mymath.div(10,3,3));
	}
}

上面程序中最重要的就是r o u nd ()方法,此处的四舍五入操作实际上是利用di v ide()方法实现 的,因为只有此方法才可以指定小数点之后的位数,而且任何一个数字除以1都是原数字.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值