一、取余数
// java api计算余数
public static int remainder(int dividend, int divisor) {
return dividend - dividend / divisor * divisor;
}
// 自写方法计算余数
public static int remainder2(int divident, int divisor) {
if (divident < divisor) {
return divident;
}
while (true) {
divident = divident - divisor;
if (divident < divisor) {
break;
}
}
return divident;
}
二、十进制转换成二进制
// 十进制转换成二进制
public static String tenToTow(int num) {
String str = "";
int yushu;
while (true) {
yushu = num % 2;
num = num / 2;
str = yushu + str;
if (num == 1 || num == 0) {
str = num + str;
break;
}
}
return str;
}
三、加减乘除及四舍五入
/**
* 提供精确的加法运算。
*
* @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 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 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 v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero ");
}
BigDecimal b = new BigDecimal(Double.toString(v));
// BigDecimal one = new BigDecimal("1");
return b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
四、日期转换
/**
* <p>
* Discription:转换日期为字符串
* </p>
*
* @param date 日期对象
* @param dateFormat 格式,默认为yyyy-MM-dd HH:mm:SS
* @return
*/
public static String formatDate(Date date, String dateFormat) {
SimpleDateFormat sdf = new SimpleDateFormat();
if (dateFormat == null) {
dateFormat = "yyyy-MM-dd HH:mm:SS";
}
if (date != null) {
sdf.applyPattern(dateFormat);
return sdf.format(date);
}
return null;
}
/**
* <p>
* Discription:转换字符串为日期对象
* </p>
*
* @param dateStr 日期字符串
* @param dateFormat 格式,默认为yyyy-MM-dd HH:mm:SS
* @return
*/
public static Date parseDate(String dateStr, String dateFormat) {
if (dateFormat == null) {
dateFormat = "yyyy-MM-dd HH:mm:SS";
}
if (isNotBlank(dateStr)) {
try {
return DateUtils.parseDate(dateStr, new String[] { dateFormat });
}
catch (DateParseException e) {
LOGGER.warn("convert string to date error: " + dateStr + " with format: " + dateFormat);
}
}
return null;
}
/**
* <p>
* Discription:转换字符串为日期对象
* </p>
*
* @param dateStr 日期字符串
* @param 支持 yyyy-MM-dd HH:mm:ss, yyyy-MM-dd HH:mm, yyyy-MM-dd, yyyy-MM-dd'T'HH:mm:ss 格式字符串时间
* @return
*/
public static Date parseDate(String dateStr) {
String[] adageDateFormats =
new String[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd", "yyyy-MM-dd'T'HH:mm:ss" };
if (isNotBlank(dateStr)) {
try {
return DateUtils.parseDate(dateStr, adageDateFormats);
}
catch (DateParseException e) {
LOGGER.info("convert string to date error: " + dateStr);
}
}
return null;
}
五、字符串非空验证
/**
* <p>
* Discription:检查字符串不为NULL,也不为空字符串
* </p>
*
* @param value
* @return
*/
public static boolean isNotBlank(Object value) {
return !JSONNull.getInstance().equals(value)
&& !(value instanceof String && ((String) value).trim().equals(""));
}
六、判断字符串是否为整数
public static boolean isInteger(String str) {
try {
Integer.valueOf(str);
}
catch (Exception e) {
return false;
}
return true;
}
七、银行家四舍五入法则
规则:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
/**
* <p>
* Discription:[银行家舍入法则]
* </p>
*
* @param b
* @return
*/
public static BigDecimal roundOfBanker(BigDecimal b) {
return b.setScale(2, RoundingMode.HALF_EVEN);
}
分享到:
相关推荐
第4章 Java的类别方法 4-1 模组化程式设计 4-2 程序是一个黑盒子 4-3 Java的类别方法 4-4 Java的类别变数和变数范围 4-5 类别方法的过载 4-6 递回程式设计 4-7 Math数学类别的类别方法 4-1 模组化程式设计-模组 模组...
java批量插入方法代码和一些注释
今天小编就为大家分享一篇关于Java代码实现随机生成汉字的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
javax.naming.spi 提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持。 javax.net 提供用于网络应用程序的类。 javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM ...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
包含java编写的 五子棋 贪吃蛇 俄罗斯方块 扫雷等小游戏 有不同编写方法特在此稍作汇总,有兴趣的朋友可以借鉴一下,也可以把其中的一些作为论文形式哦。
java代码-使用java解决Java中保留小数点的方法的源代码 ——学习参考资料:仅用于个人学习使用!
学生管理系统,本项目是用java写的用的mysql数据库,主要用来练习数据库方法的一些知识
java弹球小程序桌面弹球是游戏中常见的游戏,从以前的掌上游戏机到如今的手机游戏,都是一个十分经典的游戏。 玩家控制一个可以左右移动的挡板去改变运动中小球的移动方向,目的是用小球消除游戏屏幕中的所有 障碍物...
java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...
firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 accumulationByDoWhile.java 用do~while语句写的累加程序 ...
java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
# Java开发适合暑假降温的食材以及方法小游戏代码 这是一个基于Java开发的小游戏,旨在帮助玩家了解适合暑假降温的食材以及制作方法。 ## 游戏介绍 炎炎夏日,天气炎热,很多人都会想寻找一些适合降温的食材和...
他们发现,使用immutator(这个项目探索了Java的一些不为人知的细节)生成的Java代码使用volatile了作为方法的关键字,而这样的代码没法通过编译。结果就是这根本没法用。 这是怎么回事?syntethic和bridge方法又是...
Java数组与集合小结 305 递归 309 对象的序列化 310 Java两种线程类:Thread和Runnable 315 Java锁小结 321 java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java...
这是我刚刚学习JAVA3D时编的一些小程序,拿出来和大家共享。在编一个随鼠标平移而运动的小球时,需要重写mousebehavior 类中的方法,还没搞通,望会者指教
1.4 java中的一些常用词汇 1.5 J2SE学习中的30个基本概念 1.6 Java线程 1.7 Java 5.0多线程编程 1.8 Java Socket编程 1.9 Java的内存泄漏 1.10 抽象类与接口的区别 1.11 Java变量类型间的相互转换 2 JAVA与WEB 2.1 ...
以下是一些小升初需要提升的学习方法: 1. 制定合理的学习计划,合理安排时间,保证每个学科都有足够的时间复习。学生可以根据自己的情况,制定一份详细的学习计划,包括每天的学习任务和时间分配,以确保在考试前...
《JAVA语言程序设计》期末考试模拟试题 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序...3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。。。。。