`

数字操作助手类

阅读更多
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
分享到:
评论

相关推荐

    计算机操作助手.rar

    本文将对“计算机操作助手.rar”这一压缩包进行详细介绍,帮助用户充分利用里面的资源,提升计算机使用效率,并减少操作过程中可能遇到的困扰。 首先,我们来探讨压缩包中的主要组件。“计算机操作助手.exe”是这个...

    DAQ助手+数字信号_labview数据采集_

    文件“DAQ助手+数字信号.vi”很可能是实现这一系列操作的LabVIEW程序。打开这个VI,我们可以看到前面板(Front Panel)上有各种控件,如按钮、指示灯、图表等,用于交互和数据显示;而背后是程序框图(Block Diagram...

    C#实训项目 个人数字助手

    《C#实训项目:构建个人数字助手》 个人数字助手是一种高效的生活与工作管理工具,它可以帮助用户方便地管理联系人信息和会议/约会安排,同时具备定时提醒功能,极大地提升了用户的时间管理和组织能力。本实训项目...

    超级多的C#辅助类大全

    10. Excel操作类 11. FTP操作类 12. H5-微信 13. Html操作类 14. INI文件读写类 15. IP辅助类 16. Javascript 17. Json 18. JSON操作 19. JS操作 20. Lib 21. Mime 22. Net 23. NPOI 24. obj 25. ...

    Rom助手(蘑菇助手8.1)实测可用-可精简可Root

    标题中的“Rom助手(蘑菇助手8.1)”是一款针对Android设备,特别是Android TV设备的系统管理工具。这款软件主要用于帮助用户对设备的ROM进行...然而,使用这类工具需要一定的技术知识和谨慎操作,以免对设备造成损害。

    NPOI V1.2.4 Excel导入/导出 助手类

    这个"ExcelHelper"助手类是基于NPOI V1.2.4版本,设计用于简化Excel的导入和导出操作。 导入Excel时,`ExcelHelper`可能封装了以下功能: 1. **读取工作簿**:通过NPOI的`HSSFWorkbook`或`XSSFWorkbook`类,根据...

    沃云-经分助手-消息服务-企业平台指导手册

    【沃云-经分助手-消息服务-企业平台指导手册】是针对企业用户在使用沃云平台进行消息服务操作的详细指南。这份手册涵盖了多个关键功能模块,旨在帮助企业高效管理和发送各类消息,提升企业的运营效率。 一、登录 ...

    封包助手 封包助手 封包助手

    9. **签名与加密**:为了确保软件安全,封包助手可以对安装包进行数字签名,验证其来源和完整性。此外,还可以对敏感数据进行加密,保护用户隐私。 10. **分发与部署**:封包助手不仅负责打包,还可能整合分发渠道...

    辽宁特种行业数字证书安装手册

    ### 辽宁特种行业数字证书...8. **使用数字证书登录系统**: 最终目的是让用户能够通过数字证书完成系统的登录操作。 以上步骤确保了辽宁特种行业中数字证书的有效安装与使用,为相关行业的信息安全提供了基础保障。

    38.利用“29-德飞莱-DHT11 数字温湿度模块”实现温湿度采集并通过 串口调试助手输出。

    在本项目中,我们将探讨如何使用“德飞莱-DHT11数字温湿度模块”来采集环境中的温度和湿度数据,并通过串口调试助手将这些数据输出。DHT11是一款经济实惠且易于使用的传感器,广泛应用于智能家居、气象监测、温室...

    智能云购助手1.6.2

    总结,智能云购助手1.6.2是一款集智能化、预测分析和高效操作于一体的云购辅助工具,它将大数据、算法和用户体验完美结合,旨在提升云购的乐趣和成功率。对于喜欢云购的用户来说,这款助手无疑是一个强大的助力,让...

    0-9数字声音.WAV.rar

    6. **智能助手**:在智能家居或智能助手如AI音箱的开发中,数字声音可以用于用户指令的接收和回应。 7. **无障碍技术**:对于视障人士,这些数字声音可以作为屏幕阅读器的一部分,读出数字信息。 8. **媒体制作**...

    数字0-9中文语音wav格式音效

    在人机交互中,数字的语音化至关重要,例如电话自动服务系统、语音助手等。中文数字发音涉及普通话的标准读音,确保用户能准确理解所听到的数字信息。 2. **WAV格式**: WAV是Microsoft开发的一种无损音频文件...

    华为手机助手(201908).zip

    《华为手机助手:连接与管理的实用工具》 华为手机助手,一款专为华为设备设计的手机管理软件,虽然并未在公开市场上广泛...对于华为手机用户来说,掌握并利用好华为手机助手,无疑将使他们的数字生活更加得心应手。

    QQ连连看助手(带源码)

    在当下数字娱乐的浪潮中,QQ连连看作为一款流行的休闲游戏,深受广大玩家的喜爱。然而,对于游戏爱好者而言,想要在游戏中获得高分或快速通关,需要具备极高的观察力和反应速度。因此,一些编程爱好者和游戏开发者...

    山东ca数字证书驱动 v3.0 官方版

    山东ca数字证书驱动程序是专为山东省纳税人一款数字...操作简单,使用方便。有需要的用户可以下载。应用介绍山东ca数字证书驱动是山东省数字证书认证有限公司提供的一款数字证书驱动程序,主要为纳税人,欢迎下载体验

    C2000助手 小程序 免安装版 工具软件

    C2000助手是一款专为TI(Texas Instruments)C2000系列数字信号处理器(DSP)设计的辅助工具,它以小程序的形式提供,无需安装即可使用,极大地便利了开发人员的工作流程。在本文中,我们将深入探讨这款工具的特性、...

    文件名批量修改处理助手

    【文件名批量修改处理助手】是一款实用的工具软件,专为需要批量操作文件名的用户设计。它允许用户快速、高效地更改大量文件的名称,无论是添加前缀、后缀,还是替换文件名中的特定文字,都能轻松实现。在日常工作中...

    外调助手V3.7.4.zip

    总结来说,外调助手V3.7.4结合GIS技术,实现了外调工作的数字化、智能化,不仅简化了外调过程,也提升了数据的价值。无论是在城市规划、环保监测还是市场调研等领域,都能看到它发挥的重要作用。对于外调工作者而言...

    MAC 硬盘安装助手

    在数字化日益普及的今天,苹果公司的MAC操作系统以其独特的用户界面和高效性能赢得了广大用户的喜爱。然而,对于不熟悉MAC系统的用户来说,硬盘安装过程可能会显得有些复杂。此时,“MAC硬盘安装助手”应运而生,这...

Global site tag (gtag.js) - Google Analytics