Bigdecima 高精度用法详解

BigDecimal a=new BigDecimal(“100”)

BigDecimal [] f =new BigDecimal[int n];             //定义高精度数数组

高精度 a 调用以下函数

add(BigDecimal n);                     //加法

subtract(BigDecimal n)              //减法
multiply(BigDecimal n)              //乘法

divide(BigDecimal n)                 //除法

divide(BigDecimal b,int  scale, BigDecimal.ROUND_HALF_UP)      //精度为scale,四舍五入

setScale(int scale , BigDecimal.ROUND_HALF_UP));                        //精度为scale,四舍五入

String str = n.stripTrailingZeros().toPlainString();                           ****
n是高精度数,stripTrailingZeros方法可以实现去掉末尾的0,结果为整数会去掉小数点,使用toPlainString可以输出数值,注意如果使用toString() 会变成科学计数法输出。

pow(int b)=a^b                                                           //幂函数

 pow(int n, MathContext mc)                                     //幂函数,n 是幂次,mc是有效数字位数
a.compareTo(BigDecimal.valueOf(0))==0                 //来判断是否为0。不知道为什么,a.intValue()==0会叛错

remainder(BigInteger n)                                                                      //取余(模)

divideAndRemainder(BigDecimal n):a[0]=this / n; a[1]=this % n    //除数加余数

compareTo(BigDecimal  n)                                                             //大于返回1,等于0,小于-1

min(BigInteger n)  ,max(BigInteger n)                                             //取两个数的较小、大者

intValue(),longValue(),floatValue(),doublue()                           //返回该类型的数的值。

abs(BigInteger n)                       //绝对值

negate ()                                   //取负数,无形参

toString()                                 //返回转换成的字符串,无形参



//货币格式和百分格式
import java.math.BigDecimal;
import java.text.NumberFormat;

public class Main
{
    public static void main(String[] args) {

        NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用
        NumberFormat percent = NumberFormat.getPercentInstance();  //建立百分比格式化引用
        percent.setMaximumFractionDigits(3); //百分比小数点最多3位

        BigDecimal loanAmount = new BigDecimal("15000.48"); //贷款金额
        BigDecimal interestRate = new BigDecimal("0.008"); //利率
        BigDecimal interest = loanAmount.multiply(interestRate); //相乘

        System.out.println("贷款金额:\t" + currency.format(loanAmount));
        System.out.println("利率:\t" + percent.format(interestRate));
        System.out.println("利息:\t" + currency.format(interest));
    }
}
运行结果:
贷款金额:    ¥15,000.48
利率:    0.8%
利息:    ¥120.00





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值