博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工具类-格式化小数
阅读量:5290 次
发布时间:2019-06-14

本文共 4965 字,大约阅读时间需要 16 分钟。

import java.math.BigDecimal;import java.text.DecimalFormat;/** * ClassName: NumUtil
* Description:
* date: 2018/8/31 下午4:18
* * @author chengluchao * @since JDK 1.8 */public abstract class NumUtil { static final String FORMAT2STR = "0.00"; static final String FORMAT8STR = "0.00000000"; static final DecimalFormat df2 = new DecimalFormat(FORMAT2STR); static final DecimalFormat df8 = new DecimalFormat(FORMAT8STR); /** * 格式化小数 * * @param num * @return */ public static BigDecimal parseDouble(String num) { if (StrUtils.isEmpty(num)) return new BigDecimal(0.0); return new BigDecimal(num); } /** * 格式化小数,可以为空 * * @param num * @return */ public static BigDecimal parseDoubleHaveNull(String num) { if (StrUtils.isEmpty(num)) return null; return new BigDecimal(num); } /** * 格式化小数-double * * @param num * @return */ public static double parseDoubleTrue(String num) { if (StrUtils.isEmpty(num)) return 0.0; return Double.parseDouble(num); } /** * 转小数,保留2位 * * @param num * @return */ public static BigDecimal StrTo2Double(String num) { if (StrUtils.isEmpty(num)) num = FORMAT2STR; return new BigDecimal(num).setScale(2, java.math.BigDecimal.ROUND_HALF_UP); } /** * 转小数,保留3位 * * @param num * @return */ public static BigDecimal StrTo3Double(String num) { if (StrUtils.isEmpty(num)) num = "0.000"; return new BigDecimal(num).setScale(3, java.math.BigDecimal.ROUND_HALF_UP); } /** * 转小数,保留8位 * * @param num * @return */ public static BigDecimal StrTo8Double(String num) { if (StrUtils.isEmpty(num)) num = FORMAT8STR; return new BigDecimal(num).setScale(8, java.math.BigDecimal.ROUND_HALF_UP); } /** * 格式化数字 * * @param num * @return */ public static int parseInt(String num) { if (StrUtils.isEmpty(num)) return 0; return Integer.parseInt(num); } /** * 格式化8位小数 * * @param num * @return */ @Deprecated public static String format8(Double num) { if (num == null) num = 0.00000000; return df8.format(num); } /** * 格式化8位小数 * * @param num * @return */ @Deprecated public static String format8Double(String num) { if (num == null) return FORMAT8STR; return df8.format(Double.parseDouble(num)); } /** * 格式化8位小数 * * @param num * @return */ public static String format8(String num) { if (StrUtils.isEmpty(num)) return FORMAT8STR; BigDecimal bigDecimal = new BigDecimal(num); /* if ((0 > bigDecimal.compareTo(new BigDecimal("1"))) && (0 < bigDecimal.compareTo(new BigDecimal("-1")))){ return format8Double(num); } else { return format8(bigDecimal); }*/ return format8(bigDecimal); } /** * 格式化2位小数 * * @param num * @return */ public static String format2(String num) { if (StrUtils.isEmpty(num)) num = FORMAT2STR; return format2(new BigDecimal(num)); } /** * 格式化2位小数 * * @param num * @return */ @Deprecated public static String format2(Double num) { if (num == null || num == 0.0) num = 0.00; if (num == 0.015) num = 0.02; return df2.format(num); } /** * 格式化2位小数 * * @param num * @return */ public static String format2(BigDecimal num) { if (num == null) return FORMAT2STR; return num.setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toPlainString(); } /** * 格式化2位小数 * * @param num * @return */ public static BigDecimal format2BigDecimal(BigDecimal num) { if (num == null) return new BigDecimal("0.00"); return num.setScale(2, java.math.BigDecimal.ROUND_HALF_UP); } /** * 格式化8位小数 * * @param num * @return */ public static String format8(BigDecimal num) { if (num == null) return FORMAT8STR; return num.setScale(8, java.math.BigDecimal.ROUND_HALF_UP).toPlainString(); } /** * 是否比0大 * num > 0 * * @return */ public static boolean biggerThan0(BigDecimal num) { if (num == null) return false; if (0 < num.compareTo(new BigDecimal(0))) return true; return false; } /** * 参数是否为null,为null时直接返回。部位null时做绝对值 * * @param val * @return * @author wuqingyu */ public static BigDecimal bigDecimalIsNull(BigDecimal val) { if (val != null) { val = val.abs(); } else { val = null; } return val; }}

 

转载于:https://www.cnblogs.com/chenglc/p/11077568.html

你可能感兴趣的文章
Vue.js组件之同级之间的通信
查看>>
javascript中的面向对象(一)
查看>>
Android计算器界面 TableLayout
查看>>
【软件工程】敏捷开发方法的总结
查看>>
路由器原理及作用以及交换机
查看>>
主流PC浏览器调研
查看>>
Linux权限管理 - 基本权限
查看>>
C语言初学 简单计算器计算加减乘除程序
查看>>
smali语法小结
查看>>
[python]-类的继承
查看>>
pkg-config 设置
查看>>
选择之后,不能再选择。分配之后,不能再分配
查看>>
修复Kaos的中文显示
查看>>
自学it18大数据笔记-第三阶段Spark-day03——会持续更新……
查看>>
HBase总结
查看>>
xcode 快捷键
查看>>
STM32 CubeMX 中如何查看系统时钟
查看>>
C# 操作excel
查看>>
IT不同子领域的必读书单
查看>>
6.22
查看>>