/*
* NumberHelper.java 2004-6-17
*
* 版权所有: 自由思考组织(FTO)软件团队 2000-2005, 保留所有权利.
* 这个软件是自由思考组织(FTO)软件团队开发的,如果要使用这个软件,请首先阅读并接受许可协议。
*
* Copyright 2000-2005 FTO Software Team, Inc. All Rights Reserved.
* This software is the proprietary information of FTO Software Team, Inc.
* Use is subject to license terms.
*
* FTO站点:http://www.free-think.org
*/
package com.tc.util;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Locale;
/**
* 数字类型的工具类,提供对数字的按需求的格式和常用的格式(如用数字分隔符分隔表示、用科学计数法表示、<br>
* 百分比、千分比、金钱符号表示、设定小数点位数等)、格式化成字符串、提供对格式化后的数字字符串<br>
* 反格式化成数字、和提供精确的数字的加、减、乖、除、和四舍五入运算。<br>
*
*
* <p><pre><b>
* 历史更新记录:</b>
* 2004-06-17 创建此类型
* 2005-10-02 修改方法:getCNofNumber(),getBigCNofNumber(),抛出异常:IllegalArgumentException()
* </pre></p>
*
*
* @author abnerchai,wenjian
* @version 1.0
* @since JThink 1.0
*
*/
public final class NumberHelper {
/**
*有一位小数,且当这个小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.x,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_1 = "#,##0.#";
/**
*有二位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_2 = "#,##0.##";
/**
*有三位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_3 = "#,##0.###";
/**
*有四位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_4 = "#,##0.####";
/**
*有五位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxxxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_5 = "#,##0.#####";
/**
*有六位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxxxxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_6 = "#,##0.######";
/**
*有一位小数,且当这个小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.x,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_1_0 = "#,##0.0";
/**
* 有二位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_2_0 = "#,##0.00";
/**
*有三位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_3_0 = "#,##0.000";
/**
*有四位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_4_0 = "#,##0.0000";
/**
* 有五位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxxxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_5_0 = "#,##0.00000";
/**
* 有六位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxxxxx,若整数部分长度超过3位,用逗号分开
*/
public final static String NUMBER_I_6_0 = "#,##0.000000";
/**
* 有一位小数,且当这个小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.x,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_1 = "##0.#";
/**
* 有二位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_2 = "##0.##";
/**
* 有三位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_3 = "##0.###";
/**
* 有四位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_4 = "##0.####";
/**
* 有五位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxxxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_5 = "##0.#####";
/**
* 有六位小数,且当最后这位小数为0时不显示,整数部分正常显示,若整数部分为0,则显示0.xxxxxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_6 = "##0.######";
/**
* 有一位小数,且当这个小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.x,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_1_0 = "##0.0";
/**
* 有二位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_2_0 = "##0.00";
/**
* 有三位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_3_0 = "##0.000";
/**
* 有四位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_4_0 = "##0.0000";
/**
* 有五位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxxxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_5_0 = "##0.00000";
/**
* 有六位小数,且当最后这位小数为0时显示,整数部分正常显示,若整数部分为0,则显示0.xxxxxx,若整数部分长度超过3位,不用逗号分开
*/
public final static String NUMBER_IN_6_0 = "##0.000000";
/**
* 格式化成整数,如果整数为0,则显示0,当整数长度超过3位时,用逗号隔开
*/
public final static String NUMBER_I = "#,##0";
/**
* 格式化成整数,如果整数为0,则显示0,当整数长度超过3位时,不用逗号隔开
*/
public final static String NUMBER_IN = "##0";
/**
* 采用科学计数法表示一个数,整数部分(整数大于等于0小于10)有一位,若整数部分为0,显示为0,
* 小数部分有0位,指数显示为整数
*/
public final static String NUMBER_E_I_0 = "0E0";
/**
* 采用科学计数法表�