码迷,mamicode.com
首页 > 其他好文 > 详细

00076_BigDecimal

时间:2017-12-23 15:51:35      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:高精度运算   bsp   ati   分享图片   ring   点数据   print   乘法   img   

1、在程序中执行下列代码,会出现什么问题?

1 System.out.println(0.09 + 0.01);
2 System.out.println(1.0 - 0.32);
3 System.out.println(1.015 * 100);
4 System.out.println(1.301 / 100);

  (1)double和float类型在运算中很容易丢失精度,造成数据的不准确性;

  (2)Java提供我们BigDecimal类可以实现浮点数据的高精度运算。

2、建议浮点数据以字符串形式给出,因为参数结果是可以预知的。

3、加、减、乘

 1 public static void main(String[] args) {
 2           //大数据封装为BigDecimal对象
 3           BigDecimal big1 = new BigDecimal("0.09");
 4           BigDecimal big2 = new BigDecimal("0.01");
 5           //add实现加法运算
 6           BigDecimal bigAdd = big1.add(big2);
 7           
 8           BigDecimal big3 = new BigDecimal("1.0");
 9           BigDecimal big4 = new BigDecimal("0.32");
10           //subtract实现减法运算
11           BigDecimal bigSub = big3.subtract(big4);
12           
13           BigDecimal big5 = new BigDecimal("1.105");
14           BigDecimal big6 = new BigDecimal("100");
15           //multiply实现乘法运算
16           BigDecimal bigMul = big5.multiply(big6);

4、对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式。

  技术分享图片

 

00076_BigDecimal

标签:高精度运算   bsp   ati   分享图片   ring   点数据   print   乘法   img   

原文地址:http://www.cnblogs.com/gzdlh/p/8093401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!