【答疑解惑】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 条评论
登录 后参与评论

相关文章

来自专栏Java成神之路

Java企业微信开发_02_通讯录同步

       登录企业微信—>管理工具—>通讯录同步助手—>开启“API接口同步”  ; 开启后,即可看到通讯录密钥,也可设置通讯录API的权限:读取或者编辑通...

2712
来自专栏Java与Android技术栈

当RxJava遇到AOP

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

742
来自专栏xingoo, 一个梦想做发明家的程序员

文件上传---动作条

  利用Apache commons fileupload上传文件,直接显示其完成的进度条。----示例代码源自《JAVA WEB王者归来》   1 首先要显示...

2088
来自专栏DT乱“码”

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

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

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

FunDA(9)- Stream Source:reactive data streams

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

19710
来自专栏刘晓杰

嵌套滑动机制探究

3497
来自专栏码匠的流水账

spring security动态配置url权限

对于使用spring security来说,存在一种需求,就是动态去配置url的权限,即在运行时去配置url对应的访问角色。这里简单介绍一下。

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

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

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

692
来自专栏个人分享

Hive metastore源码阅读(一)

  不要问我为什么,因为爱,哈哈哈哈。。。进入正题,最近做项目顺带学习了下hive metastore的源码,进行下知识总结。

1121
来自专栏算法+

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

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

43910

扫码关注云+社区