java numberutil_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();
}
}
java numberutil_NumberUtil相关推荐
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常
kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3
OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...
- Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid
Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...
- 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码
java开发必知必会之看源码,而看源码的第一步则是找到源码
- java基本类型转换,随记
java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...
最新文章
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
- Java异常的性能分析
- oracle 触发器 merge,如何从触发器中解决Oracle变异错误
- 1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授
- 执子之手简约唯美的表白网站HTML源码
- linux scp命令参数及用法详解--linux远程复制拷贝命令使用实例【转】
- jQuery1.2选择器(1)
- VI3之vCenterServer配置的备份与还原
- html5在线表格生成器,js简单实现自动生成表格功能示例
- 界面开发控件DotNetBar for WPF教程:MobileRibbon快速入门指南
- 简历模板百度网盘自取
- 3709: [PA2014]Bohater
- 计算机视觉(二)图像分类
- Netlogo仿真初步学习总结
- PAT 1082 射击比赛 python
- 春天的致富梦ZZNU
- 学习秦始皇 五招打造无敌团队
- 韩国WA15-6819B高性能DSP数字功放芯片
- 很不错的abap开发入门教程
- 中国科学院计算机所张浩,专家人才库数据----中国科学院计算技术研究所
热门文章
- torch.load invalid load key, ‘\x00‘
- pybind 回调 多线程 异常
- 线性代数的本质 - 02 - 线性组合、张成的空间与基
- 基于keras的深度学习基本概念讲解
- 为CentOS 7安装VMware-tools
- 蓝牙杂散超标_杂散发射
- android置组件下面,Android Jetpack架构组件(十二)之Hilt
- isnull pivot server sql_多行转换成多列 pivot解决方案
- admui3字体无法删除_被微信好友删除、拉黑还不知?这3个方法可以自查,看完涨知识了...
- VC两个线程协作运行,轮流运行的