文档章节

BigDecimal类的加减乘除

L
 LFD
发布于 2016/06/08 09:23
字数 280
阅读 5
收藏 0

对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类。

 

BigDecimal的用法简单示例:

import java.math.BigDecimal;
 
public class Test {
    public static double add(double d1, double d2){        // 进行加法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.add(b2).doubleValue();
     }
    public static double sub(double d1, double d2){        // 进行减法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.subtract(b2).doubleValue();
     }
    public static double mul(double d1, double d2){        // 进行乘法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.multiply(b2).doubleValue();
     }
    public static double div(double d1,double d2,int len) {// 进行除法运算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
     }
    public static double round(double d,int len) {     // 进行四舍五入
         BigDecimal b1 = new BigDecimal(d);
         BigDecimal b2 = new BigDecimal(1);
        // 任何一个数字除以1都是原数字
        // ROUND_HALF_UP是BigDecimal的一个常量,
        return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
     }
    public static void main(String[] args) {
         System.out.println("加法运算:" +Test.round(Test.add(10.345,3.333), 2));
         System.out.println("乘法运算:" +Test.round(Test.mul(10.345,3.333), 3));
         System.out.println("除法运算:" +Test.div(10.345, 3.333, 3));
         System.out.println("减法运算:" +Test.round(Test.sub(10.345,3.333), 3));
     }        
}

 

© 著作权归作者所有

共有 人打赏支持
L

LFD

粉丝 1
博文 5
码字总数 3074
作品 0
昌平
程序员
私信 提问
BigDecimal类的加减乘除

BigDecimal类型(+ - * /)所用的属性 11.10 BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDe...

zkool
2012/12/18
0
0
BigDecimal加减乘除运算

Java代码 import java.math.BigDecimal; /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。 */ public class Arith{ /...

永爱619
2015/08/27
0
0
javaweb中关于金额数值的计算

话不多说; 直接上教程 第一: 数据库字段类型(保留2个小数) 第二:封装类采用BigDecimal类型接收 第三:计算采用Money对象工具类计算:如加减乘除,比大小等等 测试结果查看:...

尾生
2016/12/23
24
0
Java Double相加出现的怪事

问题的提出: 编译运行下面这个程序会看到什么 [java] view plaincopy public class test { public static void main(String args[]) { System.out.println(0.05 + 0.01); System.out.print......

onedotdot
2017/11/05
0
0
BigDecimal -- 商业计算中避免丢失精度

先说结论,商业计算中,一定要用 BigDecimal 的 String 构造器。 1.普通计算,加减乘除及结果: 显然这是不符合我们的计算预期的,在货币结算的时候会引起重大事故。 2. 引入 BigDecimal 直接...

imbiao
2018/09/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java常用设计模式

设计模式; 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“...

呵呵哒灬
15分钟前
1
0
Kafka入门

1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词...

watermelon11
昨天
0
0
Cannot list resources Permission denied: user=Administrator, access=READ_EXECUTE, inode="/tmp"

Cannot list resources Permission denied: user=ÁõÎĺÁ, access=READ_EXECUTE, inode="/tmp":root:supergroup:drwx-wx-wx windows系统 Spring boot 整合hadoop时报错。 java.lang.Ille......

lwenhao
昨天
2
0
【结构型】- 享元模式

享元模式 作用:利用共享技术有效地支持大量细粒度对象的复用 享元模式状态 内部状态:在享元对象内部不随外界环境改变而改变的共享部分,存储于享元对象内部 外部状态:随着环境的改变而改变...

ZeroneLove
昨天
3
0
Vue 中使用UEditor富文本编辑器-亲测可用-vue-ueditor-wrap

一、Vue中在使用Vue CLI开发中默认没法使用UEditor 其中UEditor中也存在不少错误,再引用过程中。 但是UEditor相对还是比较好用的一个富文本编辑器。 vue-ueditor-wrap说明 Vue + UEditor + ...

tianma3798
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部