`
dyllove98
  • 浏览: 1376115 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:38147
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:78287
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:131410
社区版块
存档分类
最新评论

java编程思想学习笔记(一)——BigInteger和BigDecimal

 
阅读更多

最近因为android,开始了java语言的学习,选择的参考书是java编程思想英文版,因为看到网上这本书的评论不错,而且也想考校一下自己的英语水平,刚开始入手英语确实比较困难,基本上是开着有道和中文的java编程思想进行阅读的,我会不定期的将自己的学习收获放在博客上,也为了能更好的督促自己的学习。

BigInteger和BigDecimal是典型的以速度获取精度的两种数据类型,这两种数据类型拥有很高的数据精度,用这两种数据类型基本上不会损失任何信息,所以这两种数据类型很适合用在货币计算中。用在int和float中的方法都可以用在这两种数据类型,只不过这两种数据类型只能使用方法进行操作,不能使用运算符,例如+,-,++,%。下面是一些具体的一些情况:

一.实例化BigInteger

1 BigInteger biFirst = new BigInteger("12");
2 System.out.println("biFirst的值为" + biFirst);

输出结果为:biFirst的值为12

在构造函数的内部,实际上调用的是Integer.parseInt()方法,所以如果BigInteger构造函数的参数为12.5,就会抛异常

 

二.BigInteger的相加

 

1 BigInteger biFirst = new BigInteger("12");
2 BigInteger biSecond = new BigInteger("9");
3 BigInteger biResult;
4 biResult = biFirst.add(biSecond);
5 System.out.println("BigInteger相加的值为:" + biResult);

输出结果为:BigInteger相加的值为:21  

BigInteger这种数据类型,不能使用+运算符进行相加,必须使用add()方法进行相加

 

三.BigInteger的相除

 

1 BigInteger biFirst = new BigInteger("12");
2 BigInteger biSecond = new BigInteger("9");
3 BigInteger biResult;
4 biResult = biFirst.divide(biSecond);
5 System.out.println("BigInteger相除的值为:" + biResult);

输出结果为:BigInteger相除的值为:1

BigInteger实际上就是精度大一点的Int类型,当然,精度也比long大,但是不要妄想它能表示小数,用BigInteger相除如果有余数则只会保留整数位

四.BigDecimal

BigDecimal的使用方法和BigInteger差不多,只有几点需要注意,两个不同精度的BigDecimal进行操作,结果的精度是两个数中精度最大的那个数的精度,如:

 

1 BigDecimal bdFirst = new BigDecimal("10.50");
2 BigDecimal bdSecond = new BigDecimal("0.5");
3 BigDecimal bdResult;
4 bdResult = bdFirst.add(bdSecond);
5 System.out.println("BigDecimal相加的值为:"+bdResult);

输出结果为:BigDecimal相加的值为:11.00

 

BigInteger和BigDecimal大家可以根据具体的情况来使用,一些具体的用法还是应该去查一下JDK,如果文中有不对的地方也请大家批评指正

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics