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

相关文章

扫码关注云+社区