double类型最多支持16位有效数字,且最大值只支持10^308次方,大一点的数字会变为科学计数法,小数精度不够等有一系列不方便的问题;

引进BigDecimal解决此类麻烦,弊端,BigDecimal没有double使用方便;具体如下;

警告警告!!!--> BigDecimal保留小数精度时,比较靠谱,但是当值小于1大于0的时候,保留位数大于6位就会变成科学计数法,解决办法-toPlainString()代替toString()

创建对象,推荐

public BigDecimal(String val)

而不推荐

public BigDecimal(double val),会出现0.00=0

基本操作:

   加:add(BigDecima)


     减:subtract(BigDecimal)


     乘:multiply(BigDecimal)


     除:divide(BigDecimal)


     乘方:pow(int)


     取绝对值:abs()


     取反:negate()


     对比:compareTo(BigDecimal)


     设置小数点精确度:setScale(int)

     不使用科学计数法:toPlainString()


     设置保留小数点精确度并添加保留方式(直接加1或者四舍五入):setScale(int, int)

    /**
* 转小数,保留2位
* @param num
* @return
*/
public static BigDecimal StrTo2Double(String num) {
return new BigDecimal(num).setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
}
    /**
* 格式化8位小数 * @param num
* @return
*/
public static String format8(BigDecimal num) {
if (num == null)
return "0.00000000";
return num.setScale(8, java.math.BigDecimal.ROUND_HALF_UP).toPlainString();
}
    /**
* 是否比0大
* num > 0
* @return
*/
public static boolean biggerThan0(BigDecimal num) {
if (0 < num.compareTo(new BigDecimal(0)))
return true;
return false;
}


最新文章

  1. MAC npm 需要管理员权限问题
  2. JDBC成绩管理系统
  3. 关于this指向思考
  4. sql server删除数据后空间无变化处理方法
  5. Spring(3.2.3) - Beans(5): 集合属性的注入
  6. ,net运行框架
  7. 三相异步电动机过载保护及报警PLC控制
  8. Android开发UI之Notification
  9. 301重定向与CNAME
  10. Windows 7 Apache下计算机无法访问局域网网站的问题
  11. Elmah错误日志工具
  12. 页面加载与iframe加载函数
  13. hdu_4823_Energy Conversion
  14. oracle 表空间不足解决办法
  15. 》》vue
  16. ava新手入门详细介绍
  17. PTA——洗牌
  18. 一个free异常引发的异常
  19. clone git 项目到 非空目录
  20. springmvc源码解析(二)

热门文章

  1. 算法复习——欧拉函数(poj3090)
  2. LightOJ1106 Gone Fishing
  3. Spring JdbcTemplate 查询方法中的RowMapper实现汇总
  4. mysql/oracle 连接参数中文变问号
  5. BS4(BeautifulSoup4)的使用--find_all()篇
  6. sublime text3安装angularjs插件
  7. ElasticSearch中Filter和Query的异同
  8. Dreamweaver8中文版视频教程 [爱闪教程]Dreamweaver8中文版
  9. Linux 下MySQL 安装与卸载
  10. 安装Django时解决的问题-mysql及访问(附pycharm激活)