简单的算法
来源:互联网 发布:青岛seo外链外包 编辑:程序博客网 时间:2024/06/01 22:04
public class NumberCalculateUtil { //万 public static final Integer UNIT_W = 10000; //百万 public static final Integer UNIT_BW = 1000000; //亿 public static final Integer UNIT_Y = 100000000; //单位 public static final String[] UNIT = {"万元", "百万元", "亿元"}; /** * 大数据简单加法运算 * * @param numbers * @return */ public static BigDecimal numberAddCalculate(String[] numbers) { BigDecimal decimal = new BigDecimal(0D); for (String num : numbers) { if (!StringUtil.isStrTrimEmpty(num)) { decimal = decimal.add(new BigDecimal(formatNumber(num, "0"))); } } return decimal; } /** * 乘位 * * @param numbers * @param unit * @return */ public static BigDecimal multiplyCalculate(String numbers, int unit) { BigDecimal decimal = new BigDecimal(formatNumber(numbers, "0")); return decimal.multiply(new BigDecimal(unit)); } /** * 大数据简单减法运算 * * @param number 减数 * @param numbers 被减数 * @return */ public static BigDecimal subtractCalculate(String number, String[] numbers) { BigDecimal decimal = new BigDecimal(formatNumber(number, "0")); for (String num : numbers) { if (!StringUtil.isStrTrimEmpty(num)) { decimal = decimal.subtract(new BigDecimal(formatNumber(num, "0"))); } } return decimal; } /** * 大数据简单乘法运算 * * @param numbers * @return */ public static BigDecimal multiplyCalculate(String[] numbers) { BigDecimal decimal = new BigDecimal(1); for (String num : numbers) { if (!StringUtil.isStrTrimEmpty(num)) { decimal = decimal.multiply(new BigDecimal(formatNumber(num, "0"))); } } return decimal; } /** * 大数据简单除法运算 * * @param number 除数 * @param numbers 被除数 * @return */ public static BigDecimal divideCalculate(String number, String[] numbers) { BigDecimal decimal = new BigDecimal(formatNumber(number, "0")); for (String num : numbers) { if (!StringUtil.isStrTrimEmpty(num)) { decimal = decimal.divide(new BigDecimal(formatNumber(num, "1")), 15, BigDecimal.ROUND_HALF_UP); } } return decimal; } /** * 除位 * * @param number * @param unit * @return */ public static BigDecimal divideCalculate(String number, int unit) { BigDecimal decimal = new BigDecimal(formatNumber(number, "0")); return decimal.divide(new BigDecimal(unit), 15, BigDecimal.ROUND_HALF_UP); } /** * 格式单位 * * @param number * @return */ public static String formatUnit(String number) { BigDecimal decimal = divideCalculate(number, UNIT_W); DecimalFormat format = null; if (decimal.intValue() <= 0) { return NumberTool.formateNumber(decimal.doubleValue(), "#,##0.00") + "元"; } if (decimal.intValue() < 100) { return NumberTool.formateNumber(decimal.doubleValue(), "#,###.#####") + UNIT[0]; } decimal = divideCalculate(number, UNIT_BW); if (decimal.intValue() < 100) { return NumberTool.formateNumber(decimal.doubleValue(), "#,###.#######") + UNIT[1]; } decimal = divideCalculate(number, UNIT_Y); return NumberTool.formateNumber(decimal.doubleValue(), "#,###.#########") + UNIT[2]; } /** * 格式化number数字 * * @param num * @return */ public static String formatNumber(String num, String dev) { if (StringUtil.isStrTrimEmpty(num)) return dev; return num.replaceAll(",", "").trim(); } public static void main(String[] args) { System.out.print(NumberCalculateUtil.multiplyCalculate("808", NumberCalculateUtil.UNIT_Y)); }}
阅读全文
0 0
- 简单的MD5算法
- 简单的排序算法
- 矩阵的简单算法
- 简单的分词算法
- 简单的算法
- 简单的遗传算法
- 一些简单的算法
- 简单的置换算法
- 简单的字符串算法
- 简单的排序算法
- 简单的推荐算法
- 算法-简单的四则运算
- 简单的跟踪算法
- STL的简单算法
- 简单快速的算法
- 算法的简单描述
- 简单的kruskal算法
- 简单的计算器算法
- Android CollapsingToolbarLayout使用介绍
- Java 循环结构
- 关于SQL字符串拼接以及“+”代表意义
- linux 系统硬件优化
- unzip 解压windows上zip文件乱码的问题
- 简单的算法
- caffe中fine-tuning的那些事
- Java Socket简单实例
- mina心跳包:客户端发送心跳包,服务端响应心跳包
- php中利用curl访问接口、上传文件
- Linux 性能测试工具
- 阿里ARouter使用及原理详细介绍
- 压缩包的上传编译
- spring boot 限制初始值大小及参数中文详解