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