BigDecimal快速使用
2024-08-25 13:04:41
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;
}
最新文章
- MAC npm 需要管理员权限问题
- JDBC成绩管理系统
- 关于this指向思考
- sql server删除数据后空间无变化处理方法
- Spring(3.2.3) - Beans(5): 集合属性的注入
- ,net运行框架
- 三相异步电动机过载保护及报警PLC控制
- Android开发UI之Notification
- 301重定向与CNAME
- Windows 7 Apache下计算机无法访问局域网网站的问题
- Elmah错误日志工具
- 页面加载与iframe加载函数
- hdu_4823_Energy Conversion
- oracle 表空间不足解决办法
- 》》vue
- ava新手入门详细介绍
- PTA——洗牌
- 一个free异常引发的异常
- clone git 项目到 非空目录
- springmvc源码解析(二)
热门文章
- 算法复习——欧拉函数(poj3090)
- LightOJ1106 Gone Fishing
- Spring JdbcTemplate 查询方法中的RowMapper实现汇总
- mysql/oracle 连接参数中文变问号
- BS4(BeautifulSoup4)的使用--find_all()篇
- sublime text3安装angularjs插件
- ElasticSearch中Filter和Query的异同
- Dreamweaver8中文版视频教程 [爱闪教程]Dreamweaver8中文版
- Linux 下MySQL 安装与卸载
- 安装Django时解决的问题-mysql及访问(附pycharm激活)