黑马程序员-------小数运算之BigDecimal
2015-06-15 16:21
686 查看
------- android培训、java培训、期待与您交流!
----------
当我们对浮点数进行运算时,不要使用基本数据类型:float和double。因为很容易会产生精度丢失的问题:
以上运算都会丢失精度
对于浮点运算,要使用BigDecimal类。
推荐使用的构造方法:
public BigDecimal(String val)
成员方法:
----------
当我们对浮点数进行运算时,不要使用基本数据类型:float和double。因为很容易会产生精度丢失的问题:
System.out.println(0.09 + 0.01); System.out.println(1.0 - 0.32); System.out.println(1.015 * 100); System.out.println(1.301 / 100);
以上运算都会丢失精度
对于浮点运算,要使用BigDecimal类。
推荐使用的构造方法:
public BigDecimal(String val)
成员方法:
<span style="white-space:pre"> </span>public BigDecimal add(BigDecimal augend) //加 public BigDecimal subtract(BigDecimal subtrahend) //减 public BigDecimal multiply(BigDecimal multiplicand) //乘 public BigDecimal divide(BigDecimal divisor) //除 (推荐)public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode) //除法。可以指定精度,以及舍入方式; 参数: divisor - 此 BigDecimal 要除以的值。 scale - 要返回的 BigDecimal 商的标度。 roundingMode - 要应用的舍入模式。
<span style="white-space:pre"> </span>BigDecimal big1 = new BigDecimal("0.00009"); BigDecimal big2 = new BigDecimal("0.01"); //加 BigDecimal bigResult = big1.add(big2); System.out.println("加法:" + bigResult); //减 bigResult = big1.subtract(big2); System.out.println("减法:" + bigResult); //乘法: bigResult = big1.multiply(big2); System.out.println("乘法:" + bigResult); //除法: bigResult = big1.divide(big2); System.out.println("除法:" + bigResult); //除法:要求:取小数点后两位,并且四舍五入 bigResult = big1.divide(big2,2,RoundingMode.HALF_UP); System.out.println("保留2位小数,并四舍五入:" + bigResult);
相关文章推荐
- 黑马程序员——Java基本语法(一):关键字、标识符、常量与变量、运算符
- 黑马程序员----面象对象及封装
- 微软100题(84)百度面试题_随机发生器
- 微软100题(83)百度面试题_memmove实现
- 黑马程序员_单例设计模式
- 如果像招聘程序员那样招聘木匠
- 黑马程序员_反射
- 黑马程序员_异常
- 微软100题(82)百度面试题_url访问频度排序
- 职场第一天
- 黑马程序员————Java基础日常笔记---对异常的理解
- 黑马程序员-博客导论
- 百度前端面试题—基础
- 黑马程序员- IO(Input- Output)(一)
- 黑马程序员-集合(一)
- 面试就是聊天
- 黑马程序员-集合(二)contains()方法的内部探索
- 黑马程序员-泛型理解
- 黑马程序员-File类+递归的简单应用
- 黑马程序员-IO(二)