BigDecimal

摘要:
对于BigDecimal的大小比较,用equals方法的话会不仅会比较值的大小,还会比较两个对象的精确度,而compareTo方法则不会比较精确度,只比较数值的大小。

对于BigDecimal的大小比较,用equals(scale是bigdecimal的保留小数点位数,比如 new Bigdecimal("1.001"),scale为3)方法的话会不仅会比较值的大小,还会比较两个对象的精确度,而compareTo方法则不会比较精确度,只比较数值的大小。b.compareTo(BigDecimal.ZERO)==0

New Bigdecimal(int,double,long,String)

方法:加:add(Bigdecimal); 减: subtract(BigDecimal);乘:multiply(BigDecimal);除:divide(BigDecimal)

转字符串:toString();双精度返回:doubleValue();单精度返回:floatValue();长整数返回:longValue();整数返回:intValue()

格式化:
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("贷款金额:	" + currency.format(loanAmount)); 
    System.out.println("利率:	" + percent.format(interestRate)); 
    System.out.println("利息:	" + currency.format(interest)); 
}

比较(compareTo(BigDecimal)来比较的):

public static void main(String[] args) {
    BigDecimal a = new BigDecimal("1");
    BigDecimal b = new BigDecimal("2");
    BigDecimal c = new BigDecimal("1");
    int result1 = a.compareTo(b);
    int result2 = a.compareTo(c);
    int result3 = b.compareTo(a);
    System.out.println(result1);
    System.out.println(result2);
    System.out.println(result3);
    
}

免责声明:文章转载自《BigDecimal》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android中app卡顿原因分析示例SpringBlade 模糊查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java精确计算小数

Java在计算浮点数的时候,由于二进制无法精确表示0.1的值(就好比十进制无法精确表示1/3一样),所以一般会对小数格式化处理. 但是如果涉及到金钱的项目,一点点误差都不能有,必须使用精确运算的时候,就可以使用BigDecimal方法计算. 但是在使用中还需要注意一个问题: //直接使用double类型数据进行运算 System.out.println(0...

获取List集合中最大值的方法

     List ll = new ArrayList(); ll.add(new BigDecimal(1)); ll.add(new BigDecimal(4.99)); ll.add(new BigDecimal(5)); System.out.println("最大值: "...

java BigDecimal实现精确加减乘除运算

加法: b1.add(b2) b2(加数) b1(被加数)减法: b1.subtract(b2) b2(减数) b1(被减数) 乘法: b1.multiply(b2) b2(乘数) b1(被乘数) 除法: b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP) b2(除数) b1(被除数)   import j...

jdk8 新特性stream().map()

1.大写字符串列表 1.1 简单的Java示例将Strings列表转换为大写 TestJava8.java package com.mkyong.java8; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.uti...

BigDecimal类

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是...

springboot @Value 类中读取配置文件 .properties null 原因和解决方案

问题:在一个工具类中,通过@Value来映射配置文件的值,得到的总是null 原因:不能用new工具类的方式,应该是用容器注册(@Autowried)的方式使用此工具类,就能得到配置文件里的值 上代码: 工具类: package com.***.***.utils; importorg.springframework.beans.factory.anno...