首页 > 编程知识 正文

bigdecimal加减乘除,bigdecimal加法运算

时间:2023-05-05 14:42:11 阅读:146039 作者:740

Java在java.math包中提供的API类bigdecimal。 用于准确计算超过16位的有效位数。 双精度浮点型变量double可以处理16位有效数。 在实际的APP应用中,需要运算处理更大或更小的数。 浮点和双精度只能用于科学计算或工程计算。 业务计算使用java.math.BigDecimal。 BigDecimal创建对象。 不能使用传统的算术运算符(如--、*和/)直接对对象进行数学运算。 必须调用相应的方法。 方法中的参数也必须是BigDecimal的对象。 构造函数是类的特殊方法,用于创建对象,特别是具有参数的对象。

工作中的金额计算使用Bigdecimal。 但是,如果遇到除法运算时不准确定义到小数点第几位,就容易出现以下结果123.457799999999963165465781964063644091796875

通过代码查看api提供的Rounding参数,以获取准确保存业务所需小数点2位的场景

import java.math.BigDecimal; 公共类测试(publicstaticvoidmain (字符串[ ] args ) bigdecimala=newbigdecimal ) 123.45778 );//第3位5 bigdecimal a2=new bigdecimal (123.45378 );//第3位5bigdecimalb=newbigdecimal(1); system.out.println(a.divide(b,2,BigDecimal.ROUND_CEILING ) ' a2.divide(b ) b,2,bigdecimal.round_ system.out.println(a.divide(b,2,BigDecimal.ROUND_FLOOR ) ' a2.divide(b ) b,2,bigdecimal.round _ bigdecimal.rou flo system.out.println (a.divide (b,2,BigDecimal.ROUND_DOWN ) ' a2.divide(b ) b,2,bigdde system.out.println(a.divide(b,2,BigDecimal.ROUND_UP ) ' a2.divide(b ) b,2,bigdecimal.round _ u u p system.out.println(a.divide(b,2,BigDecimal.ROUND_HALF_DOWN ) ' a2.divide(b ) b,2,bigdecimal.rown BigDecimal.ROUND_HALF_UP ) ' a2.divide(b ) b,2,bigdecimal.round system.out.println (a.divide (b,2,2 ) ) }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。