【答疑解惑】Java中的高精度数字

前几天网友在群里有问BigDecimal能直接赋值吗?就像使用基本数据类型那样,答案是不能。

Java中的基本数据类型有的时候是不能满足实际编程需要的,特别是在数学、科学、工程、货币等领域,因为精度不够,所以Java提供了java.math.BinInteger类和java.math.BigDecimal类,其中BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类,它们不属于基本数据类型,所以不能按照普通的基本数据类型那样计算,那么它们是怎样进行数据运算的呢?下面以BigDecimal为例进行说明。

首先查看API文档,API文档中有详细介绍。通过查看文档发现BigDecimal类提供了四类方法进行加、减、乘、除:

public BigDecimal add(BigDecimal augend) ;//加 public BigDecimal subtract(BigDecimal subtrahend) ;//减 public BigDecimal multiply(BigDecimal multiplicand);//乘 public BigDecimal divide(BigDecimal divisor);//除

例如:

BigDecimal money = new BigDecimal("15328.328"); //本金
BigDecimal interestRate = new BigDecimal("0.008"); //利率   
BigDecimal sum = money.multiply(interestRate); //总共金额

BigInteger类的操作与BigDecimal类似。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Spark生态圈

[Spark SQL] 源码解析之Optimizer

optimizer 以及之后的模块都只会在触发了action操作后才会执行。优化器是用来将Resolved LogicalPlan转化为optimized Lo...

872
来自专栏DT乱“码”

接口测试类(http,post请求)参数 json格式

package RMI; import java.io.BufferedReader; import java.io.DataOutputStream; im...

2169
来自专栏算法+

声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码

上周看到一个变调算法,挺有意思的,原本计划尝试用来润色TTS合成效果的。 实测感觉还需要进一步改进,待有空再思考改进方案。 算法细节原文,移步链接: http:...

48510
来自专栏mathor

Hanoi(汉诺塔)

1012
来自专栏大内老A

ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC

我们不仅可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身。在某些情况下通过这两者的结...

3376
来自专栏非典型技术宅

iOS实践:一步步实现星级评分1. 创建星星2. 优化3. 灵异事件

1464
来自专栏小樱的经验随笔

HDU 2438 Turn the corner(三分查找)

托一个学弟的福,学了一下他的最简便三分写法,然后找了一道三分的题验证了下,AC了一题,写法确实方便,还是我太弱了,漫漫AC路!各路大神,以后你们有啥好的简便写法...

2845
来自专栏函数式编程语言及工具

FunDA(9)- Stream Source:reactive data streams

    上篇我们讨论了静态数据源(Static Source, snapshot)。这种方式只能在预知数据规模有限的情况下使用,对于超大型的数据库表也可以说是不...

20410
来自专栏一个会写诗的程序员的博客

【Kotlin 反应式编程】第1讲 你好,Reactive Programming

【Kotlin 反应式编程】第1讲 你好,Reactive Programming

752
来自专栏Java与Android技术栈

当RxJava遇到AOP

公司打算开发一款全新的To C产品,因此我开始做一些搭建框架的事儿以及POC。新的产品能够使用一些比较新的技术,在新产品中我大量使用了Rx。这就导致了原先的AO...

812

扫码关注云+社区