`

数字操作助手类

阅读更多
public class NumberHelper {   
  
    private static Log logger = LogFactory.getLog(NumberHelper.class);   
       
    /**  
     * 将源数字格式化为指定的长度,不足的位数在前面补零,如果长度小于源数字的长度返回原始数字  
     * 适用于在产生指定长度的流水号时使用  
     *   
     * @param source  
     * @return  
     */  
    public static String number2char(int source, int length) {   
        try{   
            String module = new String();   
            for (int i=0; i<length; i++){   
                module += "0";   
            }   
            DecimalFormat format = new DecimalFormat(module);   
            return format.format(source);   
        } catch (Exception e){   
            logger.error("源数字或指定长度非法", e);   
            e.printStackTrace();   
            return null;   
        }   
    }   
       
    /**  
     * 将百分比格式化为数字表示,默认使用四舍五入的算法不舍去小数位数  
     *   
     * @param source 百分比格式的数字  
     * @return  
     */  
    public static Double percent2number(double source){   
        try{   
            BigDecimal big = new BigDecimal(source);   
            return big.divide(new BigDecimal(100)).doubleValue();   
        } catch (Exception e){   
            logger.error("将百分比格式化为数字表示出现错误", e);   
            e.printStackTrace();   
            return null;   
        }   
    }   
       
    /**  
     * 将百分比格式化为数字表示,默认使用四舍五入的算法并保留指定位数的小数  
     *   
     * @param source 百分比格式的数字  
     * @param length 小数位数  
     * @return  
     */  
    public static double percent2number(double source, int length){   
        try{   
            BigDecimal big = new BigDecimal(source);   
            return big.divide(new BigDecimal(100), length, RoundingMode.HALF_UP).doubleValue();   
        } catch (Exception e){   
            logger.error("将百分比格式化为数字表示出现错误", e);   
            e.printStackTrace();   
            return 0;   
        }   
    }   
       
    /**  
     * 将两个数字相除并返回百分格式  
     *   
     * @param dividend 被除数  
     * @param divisor 除数  
     * @return 带%号的字符串  
     */  
    public static String divide2Percent(int dividend, int divisor){   
        return number2percent(divide(dividend, divisor));   
    }   
       
    /**  
     * 将数字格式化为百分比表示  
     *   
     * @param source  
     * @return  
     */  
    public static String number2percent(double source){   
        try{   
            DecimalFormat format = new DecimalFormat("#.##%");   
            return format.format(source);   
        } catch (Exception e){   
            logger.error("将数字格式化为百分比表示出现错误", e);   
            e.printStackTrace();   
            return null;   
        }   
    }   
       
    /**  
     * 两个整数相除保留两位小数  
     *   
     * @param dividend 被除数  
     * @param divisor 除数  
     * @return  
     */  
    public static Double divide(int dividend, int divisor){   
        return divide(dividend, divisor, 2);   
    }   
       
    /**  
     * 两个整数相除保留指定位数的小数  
     *   
     * @param dividend 被除数  
     * @param divisor 除数  
     * @param length 保留小数位数的长度  
     * @return  
     */  
    public static Double divide(int dividend, int divisor, int length){   
        try{   
            if (dividend == 0){   
                return 0D;   
            }   
            BigDecimal big = new BigDecimal(divisor);   
            double d = big.divide(new BigDecimal(dividend), length, RoundingMode.HALF_UP).doubleValue();   
            return d;   
        } catch (Exception e){   
            logger.error("数字相除发生错误", e);   
            e.printStackTrace();   
            return null;   
        }   
    }   
  
    /**  
     * 将double数据保留指定位数的小数  
     * @param length 保留小数位数的长度  
     * @return  
     */  
    public static Double divide(double source, int length){   
        try{   
            if (source == 0){   
                return 0D;   
            }   
            BigDecimal big = new BigDecimal(source);   
            double d = big.setScale(length, RoundingMode.HALF_UP).doubleValue();   
            return d;   
        } catch (Exception e){   
            logger.error("保留指定位数的小数发生错误", e);   
            e.printStackTrace();   
            return null;   
        }   
    }   
       
    /**  
     * 将double数据保留指定位数的小数  
     * @param length 保留小数位数的长度,小数位数不够,以0补全。  
     * 支持科学计算法  
     * @return  
     */  
    public static String divideToString(double source, int length){   
        BigDecimal big = new BigDecimal(source);   
        return  big.setScale(length, RoundingMode.HALF_UP).toString();   
    }   
       
    /**  
     * 将String数据保留指定位数的小数  
     * @param length 保留小数位数的长度,小数位数不够,以0补全。  
     * 支持科学计算法  
     * @return  
     */  
    public static String divideToString(String source, int length){   
        BigDecimal big = new BigDecimal(source);   
        return  big.setScale(length, RoundingMode.HALF_UP).toString();   
    }   
       
       
    public static void main(String[] args){   
        System.out.print(divideToString("1.23E4",5));   
    }   
}  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaoping8411/archive/2010/04/02/5446335.aspx
分享到:
评论

相关推荐

    think-helper:thinkphp常用的助手类 助手函数

    字符串操作 // 检查字符串中是否包含某些字符串 Str::contains($haystack, $needles) // 检查字符串是否以某些字符串结尾 Str::endsWith($haystack, $needles) // 获取指定长度的随机字母数字组合的字符串 Str::...

    串口调试助手 可发送Excel中大量串口数据

    、数字,如果为空其后数据不发送。同一行中数据依次发送,遇到单 元格为空时为止。 使用技巧:发送Excel中的数据提供发送范围选择、循环发送或 设定发送次数、设定发送间隔功能,在发送过程中以上选项都可实时 动态...

    电脑版-抢购助手1.88.zip

    提示:监控下单和定时抢购互换的时候要先停止,再进行下一步操作。 如何获取商品编号: 某宝的:手机辅助链接粘贴出来,或者电脑网页看。链接里的“id=”后边的一串数字就是商品编号。 例:...

    HathiDownloadHelpe(数字图书馆下载工具)v1.1.3英文安装版

    Hathi Download Helpe是一款非常专业的hathitrust数字图书馆下载工具,该软件能帮你将hathitrust数字图书馆网站上的图书信息下载到本地上,操作简单,方便又实用,需要的朋友可以前来本站下载。 软件功能 支持用户...

    追梦翔飞数字报刊系统使用手册

    文章内容的纯文本进行简单标识,就可由本软件根据模板快速生成整个网站的内容,可使更 新效率大大提高,而且避免了手工更新容易出现错误的问题,是各中小报纸杂志社制作、更 新自已的数字版网站的好助手。...

    Java编写 文件批量重命名助手v1.2

    5.选择“开始数字”,工具会从制定数字开始命名,例如输入16,则文件命名为为:***16.**,***17.**,***18.**...。 6.选择“补齐位数”,工具会补齐数字位数。例如:输入3,则文件重命名为:***001.**,***002.**,*...

    2013[慧创]研修网自动学习助手V4.6免费版

    2013[慧创]研修网学习挂机助手V4.6免费版 【使用声明】 参加过研修网的远程培训学习时,每学习一段时间就必须做加数计算题且正确之后才能更新学习时间,或者每学习一段时间,就输入4位数字验证码,很是烦人。所以...

    数字建模资料必备软件

    数学建模软件助手,让人更懂数学建模。操作很简单,很容易。

    基于大数据和产业互联网的企业数字化转型.rar

    这份资料不仅理论丰富、实践性强,而且具有很高的可操作性,对于希望在数字经济时代保持领先的企业决策者和管理者来说,是一份不可多得的参考宝典。通过阅读这份资料,企业能够获得系统化的转型思路,掌握关键的转型...

    教学助手 v2.1.0官方版.zip

    (2)Windows Media Player 11(11.0.5721.5280)或更高版本(播放器更新会进行操作系统正版验证,非正版更新不了Windows Media Player 11); (3)Internet Explorer 6.0或更高版本; (4)Adobe Flash Player ...

    小皮助手安卓模拟器官网电脑版.rar

    解决方案:卸载删除原来的游戏,重新下载安装即可助手设置键盘有以下所述的三种操作方式: 1、单击鼠标左键,这种设置方式通过在游戏屏幕上对应位置或者指定需要的位置,单击鼠标左键设置按键键位,达到的效果跟...

    数字乡镇综合解决方案(PPT格式).rar

    最后,该解决方案将提供一系列的案例研究和最佳实践,帮助观众理解理论与实际操作的结合,以及如何根据自身乡镇的特点定制化数字化转型策略。总而言之,这个PPT格式的数字乡镇综合解决方案是一份宝贵的资源,它不仅...

    PIC单片机编程助手

    应用实例有交流数字电压表、电力周波表、闪光报警器、移动式客房控制器、不间断电源UPS控制器、均匀分布随机数程序、4阶IIR数字滤波器程序、快速傅里叶变换程序、即热式电热水器模糊逻辑温控器、汉字热敏微型打印机...

    上位机串口调试助手代码

    即可以对接收到的数据直接发送操控命令来操作数据。上位机可以接收下位机的信号。下位机是一个控制器,是直接控制设备获取设备状况的计算机。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号...

    29.企业数字化转型物流信息化咨询项目规划方案2.0(117p).pptx.rar

    企业数字化转型物流信息化咨询项目规划方案2.0是一个针对现代企业在数字化浪潮中如何有效转型的综合解决方案。本方案以117页的PPT文档形式呈现,内容涵盖企业物流信息化的核心要素,...问问助手:职业规划助手重新回答||

    15.数字化企业转型大数据解决方案(2).pptx.rar

    无论是对于数据治理的策略梳理,还是对于数据资产的价值挖掘,这份资料都能够提供具有操作性的指导和建议。其内容涵盖了数据收集、存储、管理、分析和应用等多个环节,旨在帮助企业构建起一个全面、高效、智能的...

    基于SSM+Vue+Mysql的智能新冠疫苗接种助手(源码+论文+ppt+开发文档).zip

    它可以使智能新冠疫苗接种助手管理上操作简单,成功率高,使网上智能新冠疫苗接种助手的管理向一个更高层次前进。 本系统尝试使用ssm在网上架构一个动态的智能新冠疫苗接种助手管理系统,以使每一用户在家就能通过...

    12306订票助手

    为策安全,当前版本这个数字不允许低于五秒 声音提示 勾选的话,当有票可定时,助手会放歌骚扰你 仅座票 快速设置席别过滤按钮,点击后可快速勾选所有的座票,包括硬座软座一等座等等 仅卧票 快速设置席别过滤按钮,...

    普通高中学生资助信息采集插件 EXCEL助手

    通用验证包括姓名验证、身份证号验证、中文验证、英文验证、数字验证、日期验证、电子信箱验证、电话号码验证八大类型验证。 辅助功能实现了可视化、简单化的EXCEL常用工作的特殊操作。 扩展功能为在EXCEL环境内...

    ssm项目使命召唤游戏助手的设计与实现_pzbe0.zip

    SSM项目使命召唤游戏助手的设计与实现_pzbe0.zip是一个基于Spring、Spring MVC和MyBatis(SSM)框架开发的...此外,由于电子竞技和游戏辅助工具在当代数字娱乐中占有重要地位,这类项目具有较高的市场需求和应用潜力。

Global site tag (gtag.js) - Google Analytics