package com.vcredit.ddcash.batch.util;

import java.math.BigDecimal;

public class NumberUtils {

/**
* 以指定的基数位进行四舍五入
*
* @param original 原值
* @param roundBase 基数,例:以百位为舍入基础位,基数为100
* @return
* @throws RuntimeException
*/
public static BigDecimal roundByBase(BigDecimal original, RoundBase roundBase) throws RuntimeException {
if (original == null || roundBase == null) {
throw new RuntimeException("参数不能为空");
}
BigDecimal base = roundBase.getValue();// 基数
return original.divide(base).setScale(0, BigDecimal.ROUND_HALF_UP).multiply(base);
}

/**
* 四舍五入的基数枚举
*
* @author xutao
*/
public enum RoundBase {
GE(new BigDecimal(1), "个位"),
SHI(new BigDecimal(10), "十位"),
BAI(new BigDecimal(100), "百位"),
QIAN(new BigDecimal(1000), "千位"),
WAN(new BigDecimal(10000), "万位"),
SHIWAN(new BigDecimal(100000), "十万位"),
BAIWAN(new BigDecimal(1000000), "百万位");

RoundBase(BigDecimal value, String desc) {
this.value = value;
this.desc = desc;
}

/**
* 值
*/
private BigDecimal value;
/**
* 描述
*/
private String desc;

// setter and getter
public BigDecimal getValue() {
return value;
}

public void setValue(BigDecimal value) {
this.value = value;
}

public String getDesc() {
return desc;
}

public void setDesc(String desc) {
this.desc = desc;
}
}

}

NumberUtils.java的更多相关文章

  1. java.lang.NumberFormatException: For input string: "${jdbc.maxActive}"

    一.问题 使用SpringMVC和MyBatis整合,将jdbc配置隔离出来的时候出现下面的错误,百度了很久没有找到解决方法,回家谷歌下,就找到解决方法了,不得不说谷歌就是强大,不废话,下面是具体的错 ...

  2. spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)

    spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二) >>>>>>>>>>>>>>&g ...

  3. Spark项目之电商用户行为分析大数据平台之(十)IDEA项目搭建及工具类介绍

    一.创建Maven项目 创建项目,名称为LogAnalysis 二.常用工具类 2.1 配置管理组建 ConfigurationManager.java import java.io.InputStr ...

  4. Spring+Mybatis整合过程中找不到.properties文件

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' ...

  5. 你可能用到的Spring工具类?

    现在绝大部分项目都已经拥抱Spring生态,掌握Spring常用的工具类,是非常重要,零成本增加编码效率. 一.常用工具类 ObjectUtils org.springframework.util.O ...

  6. 读取文件夹内容解析为Tree结构

    package com.mine.io; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import ...

  7. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  8. Java工具类NumberUtils使用

    int数据类型和long数据类型 int占32位,long占64位,long表示的数据更大:public static int toInt(String str) NumberUtils.toInt( ...

  9. Java 数字数组随机数工具类 NumberUtils、ArrayUtils、RandomUtils用法

    commons-lang3-3-3.8.1 //----------------------------------------------------------------------- /** ...

随机推荐

  1. ASP.NET中Url编码解码

    今天遇到Url编码解码的问题,纠结了一天的时间,结果上网一查才发现太二了我们. 同事写的代码把url用HttpUtility.UrlEncode编码和解码了,本地测试没有问题,部署到服务器上就提示转码 ...

  2. js的一些小笔记,(不定期更新)

    2个$的用法$本身并无特定意义,它表示什么意思要看是如何定义的,如果没有定义就便是两个$,可能是变量名的开始.一般是一个函数,用来代替document.getElementByIdfunction $ ...

  3. 廖雪峰js教程笔记3

    JavaScript的函数在查找变量时从自身函数定义开始,从"内"向"外"查找.如果内部函数定义了与外部函数重名的变量,则内部函数的变量将"屏蔽&qu ...

  4. Android优化

    ListView的优化 复用convertview , 历史的view对象 减少子孩子查询的次数 viewholder 异步加载数据(把图片缓存) 条目多时分页加载数据 加载时显示进度条让用户等待 I ...

  5. ZK常用命令

    zkcli脚本命令介绍 zkcli    连接默认zookeeper服务器 zkcli -server ip:port    连接指定的zookeeper服务器 create -s -e path d ...

  6. Javascript参考手册

    ---------------------------------------------------------------------------------------------------- ...

  7. BeanShell用法汇总(部分摘抄至网络)【转】

    说明:本文部分资料摘抄至 来源: http://www.cnblogs.com/puresoul/p/4915350.html 来源: http://www.cnblogs.com/puresoul/ ...

  8. 后缀数组 SPOJ 694 Distinct Substrings

    题目链接 题意:给定一个字符串,求不相同的子串的个数 分析:我们能知道后缀之间相同的前缀的长度,如果所有的后缀按照 suffix(sa[0]), suffix(sa[1]), suffix(sa[2] ...

  9. Experimental Educational Round: VolBIT Formulas Blitz

    cf的一次数学场... 递推 C 题意:长度<=n的数只含有7或8的个数 分析:每一位都有2种可能,累加不同长度的方案数就是总方案数 组合 G 题意:将5个苹果和3个梨放进n个不同的盒子里的方案 ...

  10. applet示例 WelcomeApplet.java <Core Java>

    import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.Grap ...