Day34:BigDecimal的使用】的更多相关文章

参加工作之后发现公司项目的数据库有关数值的字段类型,很少是之前常用的float和double, 而是一个没有接触过的decimal,在Java中表示的类型为BigDecimal, 而在业务中常常有关BigDecimal的加减乘除运算,所以查了一下资料,做了如下总结. 1.前言 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算. 双精度浮点型变量double可以处理16位有效数. float和double主要用来处理科学计算和工程计算,…
源地址:   http://blog.csdn.net/niannian_315/article/details/24354251 今天在用BigDecimal“出现费解”现象,以前虽然知道要避免用,但没研究过.借此机会,查证一下分享给大家参详参详. 在Java中经常可以用到double转BigDecimal,也经常进行除法运算,但是以下用法需要特别小心了. package com.ccxe.number; import java.math.BigDecimal; import java.mat…
1,保留两位小数 方法一:{ double c=3.154215; java.text.DecimalFormat myformat=new java.text.DecimalFormat("0.00"); String str = myformat.format(c); } 方式二:{ java.text.DecimalFormat df =new java.text.DecimalFormat("#.00"); df.format(你要格式化的数字); 例:ne…
1  创建一个BigDecimal 对象 BigDecimal Sum = new BigDecimal(0); 2  一个BigDecimal 对象,保留2位小数点 Sum.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); // Sum是一个BigDecimal 对象 3  加法操作: BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); b1.add…
一.简介Java在java.math包中提供的API类BigDecimal,用来对超过16位有效 位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和 double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal.BigDecimal所创建的是对象,我们 不能使用传统的+.-.*./等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法.方法中的参数也必须是Big…
这两天,由于我的必修课概率论里经常要用到排列组合的计算,感觉很麻烦,加上现代智能手机的计算器是没有这方面功能的. 所以,就自己动手写了个安卓的 排列组合 计算器,用了一天,发现有很大的问题,阶乘达百亿级别的数,程序将不再运行. 我这里举个例子,30的阶乘,30!=1x2x3x4x5....x30,这个明显是超出了整型 int 的范围了. 心想,试试长整型吧,后来发现,8字节的long 也是杯水车薪. 无奈求助百度,发现个好东西,BigDecimal 类. 查看了若干相关博文,发现全 TM 是复制…
BigDecimal bignum1 = new BigDecimal("10"); BigDecimal bignum2 = new BigDecimal("5"); BigDecimal bignum3 = null; //加法 bignum3 = bignum1.add(bignum2); System.out.println("和 是:" + bignum3); //减法 bignum3 = bignum1.subtract(bignum…
1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); public BigDecimal(char[] in, int offset, int len) ; public BigDecimal(String val); public BigDecimal(double val); public BigDecimal(BigInteger val); pu…
//jdbctemplate批量新增的使用MENU_ID_LIST是前端页面传递到后端控制层,再由控制层传到实现层的List //JdbcTemplate是spring jdbctemplate通过注解实例化得到的 public int insertEmpMenu(final String EMP_ID_, final List<String> MENU_ID_LIST, Map<String, Object> operator) { if (MENU_ID_LIST == nul…
一.引言    借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供 较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合.但是,货币计算往往要求结果精确,这时候 可以使用int.long或BigDecimal.本文主要讲述BigDecimal使用过程中的一些陷阱.建议和技巧. 二.不可变性 BigDecimal是不可变类,每…