Java中NumberUtil工具类(持续更新中)


import java.text.DecimalFormat;


public class NumberUtil {
    
    /**
     * 0与#的区别
     * 0的话如果有值显示,没有值显示0
     * #的话如果有值显示,没有值不显示
     */
    
    public static DecimalFormat FORMAT_COMMA_STYLE = new DecimalFormat(",##0.00");
    public static DecimalFormat FORMAT_COMMA_ZERO_STYLE = new DecimalFormat(",##0");
    public static DecimalFormat FORMAT_PERCENT_STYLE = new DecimalFormat("#0.00%");

    // 将数字转化为汉字的数组,因为各个实例都要使用所以设为静态
    private static final char[] cnNumbers = { '零', '一', '二', '三', '四', '五',
            '六', '七', '八', '九' };
    
    // 供分级转化的数组,因为各个实例都要使用所以设为静态
    private static final char[] series = { '十', '百', '千', '万', '十', '百',
            '千', '亿' };
    
    /**
     * 数字转换成大写中文
     */
    public static final String parseToChinese(String original) {
        // 成员变量初始化
        String integerPart = "";
        String floatPart = "";

        if (original.contains(".")) {
            // 如果包含小数点
            int dotIndex = original.indexOf(".");
            integerPart = original.substring(0, dotIndex);
            floatPart = original.substring(dotIndex + 1);
        } else {
            // 不包含小数点
            integerPart = original;
        }
        StringBuffer sb = new StringBuffer();

        // 整数部分处理
        for (int i = 0; i < integerPart.length(); i++) {
            int number = getNumber(integerPart.charAt(i));

            sb.append(cnNumbers[number]);
            if(i <= integerPart.length() - 2){
                sb.append(series[integerPart.length() - 2 - i]);
            }
        }

        // 小数部分处理
        if (floatPart.length() > 0) {
            sb.append("点");
            for (int i = 0; i < floatPart.length(); i++) {
                int number = getNumber(floatPart.charAt(i));

                sb.append(cnNumbers[number]);
            }
        }

        // 返回拼接好的字符串
        return sb.toString();
    }
    
    /**
     * 将字符形式的数字转化为整形数字 
     */
    private static int getNumber(char c) {
        String str = String.valueOf(c);
        return Integer.parseInt(str);
    }
    
    /**
     * 千分位不保留两位小数
     * @param object
     * @return
     */
    public static String NUM_FORMAT_COMMA_ZERO(Object object) {
        if(object==null){
            return "--";
        }
        return FORMAT_COMMA_ZERO_STYLE.format(object);
    }
    
    /**
     * 千分位两位小数
     * @param object
     * @return
     */
    public static String NUM_FORMAT_COMMA(Object object) {
        if(object==null){
            return "--";
        }
        return FORMAT_COMMA_STYLE.format(object);
    }
    
    /**
     * 百分比两位小数
     * @param object
     * @return
     */
    public static String NUM_FORMAT_PERCENT(Object object) {
        if(object==null){
            return "--";
        }
        return FORMAT_PERCENT_STYLE.format(object);
    }
    
}

优质内容筛选与推荐>>
1、flask 安装
2、POJ 1269 intersecting Lines
3、面试题:判断字符串是否回文
4、java内存溢出分析(二)
5、java.sql.SQLException: ORA-00911: 无效字符 解决方法 引自: http://blog.csdn.net/yangzhijun_cau/article/details/6064956


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号