java 给字符串数字小数点后补位

来源:互联网 发布:appopsmanager.java 编辑:程序博客网 时间:2024/06/06 18:49
  1.  /**
  2.   * <p>
  3.   * Description: [对数字的小数进行补位]
  4.   * <p>
  5.   * 
  6.   * @param temp
  7.   * @param Bits
  8.   * @param digit
  9.   * @return
  10.   * @author [冯贺亮]创建于[2007-12-3]
  11.   */
  12.  public static String numberDigit(String source, int digit) {
  13.   String temp=source;
  14.   if (ObjUtil.isEmpty(temp) || !isNumber(temp) || digit < 0) {
  15.    return temp;
  16.   }
  17.   if (temp.indexOf(".") != -1) {
  18.    String[] numParts = temp.split("[.]");
  19.    String digitPart = numParts[1];
  20.    int digitLength = digitPart.length();
  21.    if (digitLength > digit) {
  22.     return CalculateUtil.divideByBigDecimal(temp, "1", digit);//bigdecimal 的方法
  23.    } else if (digitLength < digit) {
  24.     StringBuffer strtemp = new StringBuffer();
  25.     strtemp.append(temp);
  26.     for (int i = 1; i <= -(digitLength - digit); i++) {
  27.      strtemp.append("0");
  28.     }
  29.     return strtemp.toString();
  30.    } else {
  31.     return temp;
  32.    }
  33.   } else {
  34.    StringBuffer strtemp = new StringBuffer();
  35.    strtemp.append(temp);
  36.    if (digit != 0) {
  37.     strtemp.append(".");
  38.    }
  39.    for (int i = 0; i < digit; i++) {
  40.     strtemp.append("0");
  41.    }
  42.    return strtemp.toString();
  43.   }
  44.  }
  45. /**
  46.   * <p>
  47.   * Description: [是否为数字]
  48.   * <p>
  49.   * 
  50.   * @param args
  51.   * @return
  52.   * @author [冯贺亮]创建于[2007-11-22]
  53.   */
  54.  public static boolean isNumber(String args) {
  55.   boolean isnumber = true;
  56.   for (int i = 0; i < args.length(); i++) {
  57.    if (Character.isDigit(args.charAt(i)) || args.charAt(i) == '.'
  58.      || args.charAt(i) == '-') {
  59.     continue;
  60.    } else {
  61.     isnumber = false;
  62.    }
  63.   }
  64.   return isnumber;
  65.  }