金额的计算BigDecimal类

double d = 9.84; 
double d2 = 1.22; 
//注意需要使用BigDecimal(String val)构造方法 
BigDecimal bigDecimal = new BigDecimal(Double.toString(d)); 
BigDecimal bigDecimal2 = new BigDecimal(Double.toString(d2));

//加法 
BigDecimal bigDecimalAdd = bigDecimal.add(bigDecimal2); 
double add = bigDecimalAdd.doubleValue();

//减法 
BigDecimal bigDecimalSubtract = bigDecimal.subtract(bigDecimal2); 
double subtract = bigDecimalSubtract.doubleValue();

//乘法 
BigDecimal bigDecimalMultiply = bigDecimal.multiply(bigDecimal2); 
double multiply = bigDecimalMultiply.doubleValue();

//除法 
int scale = 2;//保留2位小数 
BigDecimal bigDecimalDivide = bigDecimal.divide(bigDecimal2, scale, BigDecimal.ROUND_HALF_UP); 
double divide = bigDecimalDivide.doubleValue();

//格式化 
double format = 12343171.6;

//获取常规数值格式 
NumberFormat number = NumberFormat.getNumberInstance(); 
String str = number.format(format);//12,343,171.6

//获取整数数值格式 
NumberFormat integer = NumberFormat.getIntegerInstance(); 
str = integer.format(format);//如果带小数会四舍五入到整数12,343,172

//获取货币数值格式 
NumberFormat currency = NumberFormat.getCurrencyInstance(); 
currency.setMinimumFractionDigits(2);//设置数的小数部分所允许的最小位数(如果不足后面补0) 
currency.setMaximumFractionDigits(4);//设置数的小数部分所允许的最大位数(如果超过会四舍五入) 
str = currency.format(format);//¥12,343,171.60

//获取显示百分比的格式 
NumberFormat percent = NumberFormat.getPercentInstance(); 
percent.setMinimumFractionDigits(2);//设置数的小数部分所允许的最小位数(如果不足后面补0) 
percent.setMaximumFractionDigits(3);//设置数的小数部分所允许的最大位数(如果超过会四舍五入) 
str = percent.format(format);//1,234,317,160.00%

金额的计算BigDecimal类的更多相关文章

  1. 货币金额的计算 - Java中的BigDecimal

    在<Effective Java>这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal.,而且使 ...

  2. Java工具类之——BigDecimal运算封装(包含金额的计算方式)

    日常对于金额计算,应该都是用的BigDecimal,  可是苦于没有好的工具类方法,现在贡献一个我正在用的对于数字计算的工具类,项目中就是用的这个,简单粗暴好用,话不多说,代码奉上(该工具类需要引入g ...

  3. 【Java】使用BigDecimal类进行精确小数计算

    在商业计算中(尤其是计算价格)需要使用BigDecimal类来进行精确小数计算,因为用其他类型计算(如double)得到的结果不是精确的! 写个测试类. import org.junit.Test; ...

  4. BigDecimal类(精度计算类)的加减乘除

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

  5. 商业计算中Java高精度计算BigDecimal类

    <Effective Java> 第48条:如果需要精确的答案,请避免使用float和double. 如果我们编译运行下面这个程序会看到什么?public class Test{    p ...

  6. BigDecimal精确计算工具类

    前言 在实际开发中,遇到例如货币,统计等商业计算的时候,一般需要采用java.math.BigDecimal类来进行精确计算.而这类操作通常都是可预知的,也就是通用的.所以,写了个工具类来方便以后的工 ...

  7. BigDecimal 类的使用

    BigDecimal 类的使用 1.使用 BigDecimal 的原因   由于需要计算金额,所有需要高精度计算,所有需要使用 BigDecimal 类. BigDecimal能够精确的表示一个小数, ...

  8. Java:利用BigDecimal类巧妙处理Double类型精度丢失

    目录 本篇要点 经典问题:浮点数精度丢失 十进制整数如何转化为二进制整数? 十进制小数如何转化为二进制数? 如何用BigDecimal解决double精度问题? new BigDecimal(doub ...

  9. BigDecimal类

    如果需要精确的计算结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数的操作. //========================================== ...

随机推荐

  1. python优秀库 - 使用xmltodict解析xml文档

    上次讲到如何使用BeautifulSoup解析XML文档,今天发现另外一个python库xmltodict(https://github.com/martinblech/xmltodict)也很简单. ...

  2. Regex阅读笔记(三)之固化分组

    符号:?> 使用?>的匹配与正常的匹配无区别,但是如果匹配进行到此结构之后,此结构体的所有备用状态都会放弃,也就是括号内的子表达式中未尝试过的备用状态都不复存在了. 例如'(\.\d\d( ...

  3. How can you determine how much disk space a particular MySQL table is taking up?

    http://stackoverflow.com/questions/6474591/how-can-you-determine-how-much-disk-space-a-particular-my ...

  4. Qt setStyleSheet 添加背景色/背景图片(取消背景色,读取本地文件作为背景色)

    容易搞定,mainWindow 是一个QWidget.// 设置背景色为蓝色mainWindow.setStyleSheet("background-color:blue;"); ...

  5. 基于Qt下移动平台第三方接入-ShareSDK(新浪微博,微信朋友圈等分享登录)

    一. ShareSDK简介 ShareSDK是为iOS.Android.WP8的APP提供社会化功能的一个组件,开发者只需10分钟即 可集成到自己的APP中,它不仅支持如QQ.微信.新浪微博.腾讯微博 ...

  6. TextView textSize 文字大小

    TextView,很常见的控件.关于文字大小的方法有: android.widget.TextView#getTextSize  返回值的单位是PX /** * @return the size (i ...

  7. java学习之线程池的实现

    package com.gh.threadpoor; import java.util.concurrent.ExecutorService; import java.util.concurrent. ...

  8. 基于Bresenham算法画圆

    bresenham算法画圆思想与上篇 bresenham算法画线段 思想是一致的 画圆x^2+y^2=R^2 将他分为8个部分,如上图 1. 只要画出1中1/8圆的圆周,剩下的就可以通过对称关系画出这 ...

  9. Spring (一) IOC ( Inversion Of Control )

    前序 现在小米手机很火就还拿小米手机来举例子,上一篇写的关于SSH框架搭建是从小米手机公司内个整个流程方面来考虑,如何提高效率生产效率,这篇博客主要从公司外部环境说明如何提高生产效率,那么怎么才能提高 ...

  10. html的头部标签详解

    <!DOCTYPE html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...