`
菜鸟级JAVA
  • 浏览: 96282 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

数字格式+计算工具类

 
阅读更多
package util;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;

/**
* 数字格式+计算工具类
*/
public final class NumberUtil {

public NumberUtil() {
super();
}

public static final int HEX = 16;

public static final int DEICAML = 10;

/**
* 字符串 转换成 整数
*
* @param str
* @return
*/
public static int toInteger(String str) {
int result = 0;
try {
result = Integer.valueOf(str);
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* 字符串 转换成 整数
*
* @param str
* @return
*/
public static int toInteger(Object str) {
if (str == null) {
return 0;
}
int result = 0;
try {
result = Integer.parseInt((String) str);
} catch (Exception e) {
result = 0;
}
return result;
}

public static Short toShort(Object str) {
if (str == null) {
return 0;
}
short result = 0;
try {
result = Short.valueOf((String) str);
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* double to int
*
* @param dou
* @return
*/
public static Integer toDoubleToInterger(String str) {
int result = 0;
try {
double dou = Double.valueOf(str);
result = (int) dou;
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* 字符串 转换成 Double
*
* @param str
* @return
*/
public static Double toDouble(String string) {
Double result = null;
try {
result = Double.valueOf(string);
} catch (Exception e) {
result = 0.0;
}
return result;
}

/**
* 字符串 转换成 Double
*
* @param str
* @return
*/
public static Double toDouble(String string, Double df) {
Double result = null;
try {
result = Double.valueOf(string);
} catch (Exception e) {
result = df;
}
return result;
}

/**
* 转换失败默认为0
*
* @param string
* @param radix
* @return
*/
public static int toInteger(String string, int radix) {
int result = 0;
try {
result = Integer.valueOf(string, radix);
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* 转换失败默认0
*
* @param string
* @return
*/
public static float toFloat(String string) {
float result = 0;
try {
result = Float.valueOf(string);
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* 转换失败默认为BigDecimal.ZERO
*
* @param string
* @return
*/
public static BigDecimal toBigDecimal(String string) {
try {
return new BigDecimal(string);
} catch (Exception e) {
return BigDecimal.ZERO;
}
}

/**
* 转换失败默认0
*
* @param string
* @return
*/
public static long toLong(String string) {
long result = 0;
try {
result = Long.valueOf(string);
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* 转换失败默认0
*
* @param string
* @return
*/
public static long toLong(Object string) {
if (string == null) {
return 0;
}
long result = 0;

try {
String str = (String) string;
result = Long.valueOf(str);
} catch (Exception e) {
result = 0;
}
return result;
}

/**
* 数据显示格式化,如果number为null,默认按照0处理
*
* @return
*/
public static String numberFormat(Number number, String format) {
DecimalFormat decimalFormat = new DecimalFormat(format);
if (number != null) {
return decimalFormat.format(number);
} else {
return decimalFormat.format(0);
}
}

/**
* BigDecimal类型数据相加
*
* @param bd1
* @param bd2
* @return
*/
public static BigDecimal add(BigDecimal... bds) {
BigDecimal rt = null;
for (int i = 0; i < bds.length; i++) {
if (bds[i] != null) {
if (rt == null) {
rt = bds[i];
} else {
rt = rt.add(bds[i]);
}
}
}
return rt;
}

/**
* BigDecimal类型数据相减
*
* @param bd1
* @param bd2
* @return
*/
public static BigDecimal subtract(BigDecimal... bds) {
BigDecimal rt = null;
for (int i = 0; i < bds.length; i++) {
if (bds[i] != null) {
if (rt == null) {
rt = bds[i];
} else {
rt = rt.subtract((bds[i]));
}
}
}
return rt;
}

/**
* 年利率转换成日利率,保留6位有效小数
*
* @param yearIntRate
* @return
*/
public static BigDecimal yeart2dayIntRate(BigDecimal yearIntRate) {
if (yearIntRate == null) {
return null;
}
return yearIntRate.divide(new BigDecimal("360"), 6, RoundingMode.UP);
}

/**
* BigDecimal大小比较 <li>bigDecimalCompareTo(null,null)==0</li> <li>
* bigDecimalCompareTo(null,value)==-1</li> <li>bigDecimalCompareTo(value,null)==1</li> <li>
* bigDecimalCompareTo(value1,value2)==value1.compareTo(value2)</li>
*
* @param value1
* @param value2
* @return
*/
public static int bigDecimalCompareTo(BigDecimal value1, BigDecimal value2) {
BigDecimal first = value1 == null ? BigDecimal.ZERO : value1;
BigDecimal second = value2 == null ? BigDecimal.ZERO : value2;
return first.compareTo(second);
}

/**
* double sum
*
* @param list
* @return
*/
public static Double doubleSum(List<Double> list) {
Double doubleSum = 0.0;
if (list == null) {
return null;
}
for (Double dou : list) {
if (dou != null) {
doubleSum += dou;
}
}
return doubleSum;
}

/**
* double max
*
* @param list
* @return
*/
public static Double doubleMax(List<Double> list) {
Double doubleMax = 0.0;
if (list == null) {
return null;
}
for (Double dou : list) {
if (dou != null) {
if (doubleMax.compareTo(dou) < 0) {
doubleMax = dou;
}
}
}
return doubleMax;
}

public static BigDecimal toDecimal(Object obj) {
if (obj == null) {
return null;
} else {
BigDecimal result;
try {
result = new BigDecimal(obj.toString());
return result;
} catch (RuntimeException e) {
return null;
}
}
}

/**
* 将小数转化为百分数,保留2位小数
* //例:0.00218622829424932 ——> 0.22%
*
* @param df
* @return
*/
public static String toPercent(Double df) {
if (df == null) {
return null;
}
NumberFormat nt = NumberFormat.getPercentInstance();
nt.setMinimumFractionDigits(2);
return nt.format(df);
}

}
分享到:
评论

相关推荐

    数字格式化工具类

    标题中的“数字格式化工具类”指的是在编程中用于处理数字字符串的一种实用程序类,它通常包含各种方法,用于将数字转换成特定格式,如货币、百分比、科学记数法等。这样的工具类可以极大地简化开发过程,提高代码...

    字符转换工具类

    在IT行业中,字符转换工具类是编程中常见的一种实用工具,尤其在处理字符串与各种编码格式之间转换时显得尤为重要。这个“字符转换工具类”似乎是一个专门为生成HTML源码而设计的工具,它包含了全面的源码实现,并且...

    数字处理工具.docx

    `doubleToInstance`方法使用了`DecimalFormat`类的`getNumberInstance()`方法,它是一种通用的数字格式化器,可以按照本地化的规则进行数字格式化。在这个方法中,它将传入的Double类型的数值格式化为带有逗号分隔...

    安卓textView相关-Android一些数字文字相关的格式化工具类.rar

    这个压缩包“安卓textView相关-Android一些数字文字相关的格式化工具类.rar”可能包含了一些辅助开发者处理数字和文字格式化的自定义工具类。虽然没有具体的代码示例,但我们可以基于常见的需求来探讨`TextView`中与...

    iOS字符串无误差计算工具类NSDecimalNumber链式封装支持四舍五入

    标题提到的"iOS字符串无误差计算工具类NSDecimalNumber链式封装支持四舍五入"正是为了解决这一问题而设计的。NSDecimalNumber是苹果提供的一个类,它提供了对十进制数值进行精确计算的方法,避免了浮点数的精度损失...

    Excel POI 工具类

    4. **数据验证**:在填充数据时,工具类可能包含验证函数,确保输入符合特定条件,如日期格式、数字范围等。 5. **公式支持**:支持在单元格中插入和计算Excel公式,这对于数据分析和报表生成非常有用。 6. **行列...

    iOS分类以及工具类汇总

    2. 数字格式化:如NSNumber的分类,支持货币、百分比等格式的转换。 3. 图片处理:如UIImage的分类,提供了裁剪、缩放、调整透明度等功能。 4. 颜色操作:如UIColor的分类,方便生成渐变色、十六进制转颜色等。 5. ...

    数字格式化类与大数处理利用案例轻松学习Java语言PPT学习教案.pptx

    Java 语言中的数字格式化和大数处理是编程中非常重要的概念,特别是在处理财务、科学计算等需要精确数值表示的场景。本篇内容主要讲解了Java中的`NumberFormat`类和`DecimalFormat`类用于数字格式化,以及`...

    Java工具类

    本资源提供的五个Java工具类涵盖了日期时间处理、数字格式化、参数操作、字符串操作以及数据校验等多个方面,这对于开发人员来说是非常实用的。下面我们将对每个工具类进行详细解释。 1. **日期时间工具类**: 这...

    JAVA各种计算工具类[借鉴].pdf

    以下是对`JAVA各种计算工具类[借鉴].pdf`中部分代码的分析和解释: 1. **编码与解码**: `BASE_CODE = "utf-8"`定义了默认的字符编码为UTF-8。在处理字符串时,特别是从网络读取数据或写入文件时,正确设置编码是...

    中文数字转成阿拉伯数字 java 实现

    在`UnitTest.java`文件中,可以看到单元测试用例,通常会包含各种输入测试,如纯中文数字、混合中文和阿拉伯数字、边界条件(如零开头的数字)以及异常情况(如非法字符或格式错误的输入)。这些测试用例有助于确保...

    JAVA对象以及数据的工具类

    在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...

    三个工具类

    这种工具类通常包含一系列方法,用于数据的转换、验证、排序或计算。例如,它可以提供数字格式化、字符串拼接、日期时间处理等功能。例如,Java中的`java.util.Arrays`就是处理数组的工具类,提供了排序、查找、...

    坐标计算工具

    坐标计算工具应能处理这类转换,确保测量结果的准确性。 5. **高程处理**:除了水平坐标,许多工程还会涉及高程信息,尤其是在地形复杂的地区。工具应能处理三维坐标,并进行高度计算,如计算两点间的海拔差或坡度...

    CIDR子网掩码计算工具

    总结来说,"CIDR子网掩码计算工具"是一个实用的辅助软件,它利用VC++编程语言和特定的分段掩码算法,帮助用户方便地处理CIDR格式的IP地址,进行子网掩码、IP数量和范围的计算。对于网络管理员、程序员或者学习网络...

    28个java常用的工具类源码

    4. **数学计算工具类**:如MathUtils,包含了一些数学运算的优化实现,如最大值、最小值、幂运算等。 5. **文件操作工具类**:如FileUtils,提供读写文件、创建目录、复制文件等常用功能,简化了文件操作。 6. **...

    工具类项目,开发经常用到的一些工具类

    2. **日期和时间**:工具类可能包含处理日期和时间的方法,如解析日期字符串、计算两个日期之间的差值、格式化日期输出等。例如,`DateUtils.addDays()`可以用于向日期添加指定天数。 3. **集合操作**:集合工具类...

    java sm2国密工具类

    5. **兼容性和适配**:为了保证与其他系统或标准的兼容性,工具类可能还包含了与PKCS#7或CMS(Cryptographic Message Syntax)格式的转换功能,以便于数据交换。 6. **错误处理**:良好的工具类会提供适当的错误...

    一款自用的PHP验证码工具类|kcaptcha.zip

    7. **可扩展性**:作为一个自用工具类,KCAPTCHA可能允许开发者添加自定义的验证码生成策略或者验证规则,以满足特定项目的需求。 通过`kcaptcha`这个文件,我们可以查看KCAPTCHA的具体实现,包括它的内部逻辑、类...

    Android-BankCardUtils自动格式化银行卡号手机号身份证号输入的工具类

    在中国,手机号通常以11位数字表示,工具类可能会在输入过程中实时格式化,如“13800138000”。同时,它也会进行简单的合法性检查,如确保输入的数字长度为11位,以及首位数字符合中国手机号码的规定范围(1-9)。 ...

Global site tag (gtag.js) - Google Analytics