code: protected void init() {
          
          if(isZero()) {
              this.integerPart = "";
              this.decimalPart = "";
              return;
          }
          
          final StringBuilder sb = new StringBuilder();
          sb.append("#");
          if(scale > 0) {
              sb.append(".");
          }
          
          // 小数の精度分、書式を追加する。
          for(int i=0; i < scale; i++) {
              sb.append("#");
          }
          
          final DecimalFormat format = new DecimalFormat(sb.toString());
          format.setRoundingMode(RoundingMode.HALF_UP);
          
          double num = Math.abs(getValue());
          if(getPermilles() > 0) {
              num /= Math.pow(1000, getPermilles());
          }
          
          String str = format.format(num);
          
          // 数値を小数部と整数部に分割する。
          setupIntegerAndDecimalPart(str);
          
      }
docs: 値を精度に従い整数部と小数部に分解する。