如何应用Java的BigDecimal类
5.8 BigDecimal类
双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。表5.7中列出了BigDecimal类的主要构造器和方法。
表5.7 BigDecimal类的主要构造器和方法
构 造 器描 述
BigDecimal(int)创建一个具有参数所指定整数值的对象。
BigDecimal(double)创建一个具有参数所指定双精度值的对象。
BigDecimal(long)创建一个具有参数所指定长整数值的对象。
BigDecimal(String)创建一个具有参数所指定以字符串表示的数值的对象。
续表
方 法描 述
add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。
toString()将BigDecimal对象的数值转换成字符串。
doublue()将BigDecimal对象中的值以双精度数返回。
floatValue()将BigDecimal对象中的值以单精度数返回。
longValue()将BigDecimal对象中的值以长整数返回。
intValue()将BigDecimal对象中的值以整数返回。
注意,由于一般数值类型,例如double,不能准确地代表16位有效数以上的数字,在使用BigDecimal时,应用BigDecimal(String)构造器创建对象才有意义。另外,BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。
构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。关于构造器概念和编写技术,将在本书第6章详细介绍。
下面讨论BigDecimal的一些常用例子:
//完整程序例子在本书配套资源目录Ch5中名为BigDecimalTestApp.Java
//创建BigDecimal对象
BigDecimal bigNumber = new BigDecimal("89.1234567890123456789");
BigDecimal bigRate = new BigDecimal(1000);
BigDecimal bigResult = new BigDecimal(); //对象bigResult的值为0.0
//对bigNumber的值乘以1000,结果 赋予bigResult
bigResult = bigNumber.multiply(bigRate);
System.out.println(bigResult.toString());
//或者System.out.println(bigResult);
//显示结果:89123.4567890123456789000
//以双精度数返回bigNumber中的值
double dData = bigNumber.doublue();
System.out.println(dData); //结果:89.12345678901235
注意使用方法doublue()将对象bigNumber中的值以双精度数值返回时,将丢失数据的准确性。使用其他方法,如xxxValue()时均存在这个问题,使用时必须慎重。
<!--[if !vml]--><!--[endif]-->3W BigDecimal用来对超过16有效位以上的数值进行运算和操作。所有的算术运算都通过调用其相应的方法进行。创建一个超过16有效位数的对象时,运用BigDecimal(String)才可避免丢失数字的精确度。
5.9 BigDecimal和格式化
由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。
package Test; import java.math.BigDecimal; //引入这个包 public class Test { double i = 3.856; // 舍掉小数取整 // 四舍五入取整 // 四舍五入保留两位小数 // 凑整,取上限 // 舍掉小数取整 // 四舍五入保留两位小数 // 凑整,取上限 |
转载于:https://blog.51cto.com/lbhappy1990/782235
如何应用Java的BigDecimal类相关推荐
- java基础-BigDecimal类常用方法介绍
java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...
- Java中BigDecimal类介绍及用法
Java中BigDecimal类介绍及用法 Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高 ...
- java.math.BigDecimal类multiply的使用
java.math.BigInteger.multiply(BigInteger val) 返回一个BigInteger,其值是 (this * val). 声明 以下是java.math.BigIn ...
- Java中BigDecimal类常用方法,舍入策略
标题 Java BigDecimal 的舍入模式 (RoundingMode)详解 提一下银行家算法 BigDecimal和BigInteger Java中BigDecimal常用方法 BigDeci ...
- Java中BigDecimal类的使用方法详解,常用最全系列!
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.对于Double类型的运算,通常使用此类处理,来有效避免精度问题. 下面,我们从五个功能点 ...
- java bigdecimal赋值_Java中BigDecimal类介绍及用法(亲测)
Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算. 其中 BigInteger 类是 ...
- Java常用类(5)--不可变的任意精度BigInteger、BigDecimal类
文章目录 BigInteger类 BigDecimal类 BigInteger类 Integer类作为int的包装类,能存储的最大整型值为2^31-1,Long类也是有限的, 最大为2^63-1.如果 ...
- Java快速入门到精通—大数字运算(BigDecimal 类)
在Java中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类.这两个类用于高精度计算,其中BigInteger 类是针对整型大 ...
- 4、大数字运算(BigInteger类和BigDecimal类)
在 Java 中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类.这两个类用于高精度计算,其中 BigInteger 类是针对 ...
最新文章
- 燃烧青春和诗意的IT人生
- sstream应用举例
- 10岁才上小学的他,如今是高校男神教授
- 一种基于随机投影的本地差分隐私高维数值型数据收集算法
- 漫步数理统计二十一——变换:随机向量
- 【Flink】Failed to create checkpoint storage at checkpoint coordinator side
- WEB程序调用客户端程序
- CryptoQuant CEO:OKEx暂停提款对比特币价格影响不大
- Baidu - Echarts 地图实例测试,并绘制平滑圆弧路径
- fcntl函数的作用及应用场景
- 百度网盘 自定义分享密码 提取码
- linux表示虚拟字符终端,终端,控制台,虚拟终端分别指什么
- HTML实现简单水平导航栏
- Java 程序员常用资源网站集合
- 计算机专业必须用英语口语要求,哪些专业需要英语口语考试
- oracle+linux+oel+6.9,Oracle 11g(11.2.0.4) install on OEL6.7
- 史上最全面聊天机器人总结(图灵、思知、小i、小微)
- 从甲方转变为乙方,工作心态的转变
- 五大常用算法之四:分治法
- 【读书笔记】自卑与超越
热门文章
- .Net Core使用视图组件(ViewComponent)封装表单文本框控件
- 详细聊聊k8s deployment的滚动更新(二)
- Android规范发展
- 谷歌官方扩展UI组件---SlideTabLayout
- Python Challenge-Level 1
- Windows7操作系统自定义运行命令(简单方法之二)
- C#生成CHM文件(应用篇)之代码库编辑器(5)【总结、程序、源代码】
- photoshop修复面部的皱纹
- WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)
- button 去掉原生边框