Java BigDemical在工作中的应用(主要用于钱的处理)
2017-04-27 13:34
441 查看
bigDecimal在java.math包下,提供用于执行任意精度小数算法的类。
BigDecimal不可变的、任意精度的有符号十进制数。
java.lang.Object
java.lang.Number
java.math.BigDecimal
BigDecimal类使用户完全控制舍入行为。如果未指定舍入模式,并且无法表示准确结果,则抛出一个异常;否则,通过向该操作提供适当的MathContext对象,可以对已选择的精度和舍入模式执行计算。在商业计算中要用BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
常用构造方法:可以将String类型的数字,int,double,long作为构造方法的参数传入进行构造一个BigDecimal对象。
常用方法:
加减乘除
add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。
toString()将BigDecimal对象的数值转换成字符串。
doubleValue()将BigDecimal对象中的值以双精度数返回。
floatValue()将BigDecimal对象中的值以单精度数返回。
longValue()将BigDecimal对象中的值以长整数返回。
intValue()将BigDecimal对象中的值以整数返回。
将计算结果进行格式化:
[java]viewplaincopy
//金额
NumberFormatcurrency=NumberFormat.getCurrencyInstance();
//利率
NumberFormatpercent=NumberFormat.getPercentInstance();
//小数点后最多三位
percent.setMaximumFractionDigits(3);
BigDecimalloanMoney=newBigDecimal(12345.32);//贷款金额
BigDecimalrate=newBigDecimal(0.004);//利率
BigDecimalintrest=loanMoney.multiply(rate);//利息
System.out.println("贷款:"+currency.format(loanMoney));
System.out.println("利率:"+percent.format(rate));
System.out.println("利息:"+currency.format(intrest));
<spanstyle="font-size:18px;">结果:</span>
贷款:¥12,345.32
利率:0.4%
利息:¥49.38
在用户展示的时候比较方便
比较大小,例如查询用户钱包的余额和这次要支付的钱的大小。
BigDecimal是通过使用compareTo(BigDecimal)来比较的,具体比较情况如下:
[java]viewplaincopy
publicstaticvoidmain(String[]args){
BigDecimala=newBigDecimal("100");
BigDecimalb=newBigDecimal("10");
BigDecimalc=newBigDecimal("10");
intresult1=a.compareTo(b);
intresult2=a.compareTo(c);
intresult3=b.compareTo(c);
<spanstyle="font-size:18px;"></span><prename="code"class="java">intresult4=b.compareTo(a);
System.out.println(result1);System.out.println(result2);System.out.println(result3);
[java]viewplaincopy
System.out.println(result4);
}
结果:
1
1
0
-1
compareTo左边大,输出1,,右边大输出-1,相等输出0
BigDecimal不可变的、任意精度的有符号十进制数。
java.math.BigDecimal
BigDecimal类使用户完全控制舍入行为。如果未指定舍入模式,并且无法表示准确结果,则抛出一个异常;否则,通过向该操作提供适当的MathContext对象,可以对已选择的精度和舍入模式执行计算。在商业计算中要用BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
常用构造方法:可以将String类型的数字,int,double,long作为构造方法的参数传入进行构造一个BigDecimal对象。
常用方法:
加减乘除
add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。
toString()将BigDecimal对象的数值转换成字符串。
doubleValue()将BigDecimal对象中的值以双精度数返回。
floatValue()将BigDecimal对象中的值以单精度数返回。
longValue()将BigDecimal对象中的值以长整数返回。
intValue()将BigDecimal对象中的值以整数返回。
将计算结果进行格式化:
[java]
//金额
NumberFormatcurrency=NumberFormat.getCurrencyInstance();
//利率
NumberFormatpercent=NumberFormat.getPercentInstance();
//小数点后最多三位
percent.setMaximumFractionDigits(3);
BigDecimalloanMoney=newBigDecimal(12345.32);//贷款金额
BigDecimalrate=newBigDecimal(0.004);//利率
BigDecimalintrest=loanMoney.multiply(rate);//利息
System.out.println("贷款:"+currency.format(loanMoney));
System.out.println("利率:"+percent.format(rate));
System.out.println("利息:"+currency.format(intrest));
<spanstyle="font-size:18px;">结果:</span>
贷款:¥12,345.32
利率:0.4%
利息:¥49.38
在用户展示的时候比较方便
比较大小,例如查询用户钱包的余额和这次要支付的钱的大小。
BigDecimal是通过使用compareTo(BigDecimal)来比较的,具体比较情况如下:
[java]
publicstaticvoidmain(String[]args){
BigDecimala=newBigDecimal("100");
BigDecimalb=newBigDecimal("10");
BigDecimalc=newBigDecimal("10");
intresult1=a.compareTo(b);
intresult2=a.compareTo(c);
intresult3=b.compareTo(c);
<spanstyle="font-size:18px;"></span><prename="code"class="java">intresult4=b.compareTo(a);
System.out.println(result1);System.out.println(result2);System.out.println(result3);
[java]
System.out.println(result4);
}
结果:
1
1
0
-1
compareTo左边大,输出1,,右边大输出-1,相等输出0
相关文章推荐
- Java BigDemical在工作中的应用(主要用于钱的处理)
- 创新性应用-在工作过程中总结了SQL 2005的主要新特性-崔欣
- JAVA基础应用: 处理Java中的日期问题
- JAVA中用于处理字符串的“三兄弟”
- java异常处理原理及应用
- Java异常处理原理及应用
- JAVA 在图像处理中的应用
- java基础问题----Java中的异常处理机制的简单原理和应用
- JAVA中用于处理字符串的“三兄弟”----转载
- JAVA中用于处理字符串的“三兄弟”
- sprintf和string_format在PHP中的应用,主要用于smarty
- 工作之余,整理了一下平时处理数据的一些常用的,简单的方法。希望对学习JAVA的朋友有点帮助
- java web应用文件下载(包括中文文件名乱码处理)
- java web应用文件下载(包括中文文件名乱码处理)
- JAVA中用于处理字符串的“三兄弟”
- JAVA基础应用: 处理Java中的日期问题
- Quartz应用----发送邮件工作调度Java(转)
- Java语言的出现背景、主要特点、发展历程以及Java技术的应用
- [Java]一则自定义的XStream转换器,主要用于POJO XML反序列化为Map/List
- Java的WEB应用性能问题定位方法总结(二):常见性能问题处理工具