NumberUtil
2016-06-20 00:00
106 查看
摘要: NumberUtil
public static void main(String[] args) { //格式化数字三位为一位 final DecimalFormat df=(DecimalFormat) DecimalFormat.getInstance(); df.setGroupingSize(3); System.out.println(df.format(1234));//1,234 //格式化百分比,保留3位小数 final NumberFormat nt = NumberFormat.getPercentInstance(); nt.setMinimumFractionDigits(3);//保留3位小数 System.out.println(nt.format(1D/3D));//33.333% System.out.println(nt.format(1D/4D));//25.000% }
public class Common { // 后台访问 public static final String BACKGROUND_PATH = "/WEB-INF/view"; // 默认除法运算精度 private static final int DEF_DIV_SCALE = 10; /** * 获取登录用户的userId * @return */ public static Long getloginUserId() { Subject subject = SecurityUtils.getSubject(); UserEntity sessionUser = (UserEntity)subject.getSession().getAttribute("userSession"); return sessionUser.getId(); } /** * 获取登录用户的userId * @return */ public static String getloginUserAccountName() { Subject subject = SecurityUtils.getSubject(); UserEntity sessionUser = (UserEntity)subject.getSession().getAttribute("userSession"); return sessionUser.getAccountName(); } /** * String转换double * * @param string * @return double */ public static double convertSourData(String dataStr) throws Exception { if (dataStr != null && !"".equals(dataStr)) { return Double.valueOf(dataStr); } throw new NumberFormatException("convert error!"); } /** * 使用率计算 * * @return */ public static String fromUsage(long free, long total) { Double d = new BigDecimal(free * 100 / total).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); return String.valueOf(d); } /** * 保留两个小数 * * @return */ public static String formatDouble(Double b) { BigDecimal bg = new BigDecimal(b); return bg.setScale(2, BigDecimal.ROUND_HALF_UP).toString(); } /** * 返回用户的IP地址 * @param request * @return */ public static String toIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } /** * 提供精确的减法运算。 * @param v1 被减数 * @param v2 减数 * @return 两个参数的差 */ public static double sub(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); } /** * 提供精确的加法运算。 * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public static double add(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } /** * 提供精确的乘法运算。 * @param v1 被乘数 * @param v2 乘数 * @return 两个参数的积 */ public static double mul(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.multiply(b2).doubleValue(); } /** * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 小数点以后10位,以后的数字四舍五入。 * @param v1 被除数 * @param v2 除数 * @return 两个参数的商 */ public static double div(double v1, double v2) { return div(v1, v2, DEF_DIV_SCALE); } /** * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入。 * @param v1 被除数 * @param v2 除数 * @param scale 表示表示需要精确到小数点以后几位。 * @return 两个参数的商 */ public static double div(double v1, double v2, int scale) { if (scale < 0) { throw new IllegalArgumentException("The scale must be a positive integer or zero"); } BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 是否为整数 * @param str * @return */ public static boolean isNumeric(String str) { Pattern pattern = Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); } }
相关文章推荐
- Linux 安装JDK
- solr安装
- Xamarin.Forms获取设备屏幕大小
- Xamarin Visual Studio不识别JDK路径
- ubuntu上面安装nodejs,npm,bower,grunt,yeoman
- ubuntu安装oh my zsh
- spark (二)
- ssh免密码登陆
- tiger vncserver 安装及修改默认端口方法
- liquibase 通过pgoneproxy来管理数据库版本
- 浅谈Java项目打包方式
- 八大排序算法-概要
- Moving Away from Python 2
- mac电脑上eclipse自动补全(联想功能)
- 到M的一周
- Spring和Hibernate整合时对session及事务管理的理解
- 面试小结
- Eclipse在高分屏下图标过小的解决方法
- 互联网协议入门
- 第九章 竞品技术分析