code: @Override
      protected String doBase(String name, Object value) {
  
          // Parse big decimal
          BigDecimal bd;
          try {
              bd = new BigDecimal(value.toString());
          } catch (NumberFormatException e) {
              throw new IndexException("Field '{}' requires a base 10 decimal, but found '{}'", name, value);
          }
  
          // Split integer and decimal part
          bd = bd.stripTrailingZeros();
          String[] parts = bd.toPlainString().split("\\.");
          validateIntegerPart(name, value, parts);
          validateDecimalPart(name, value, parts);
  
          BigDecimal complemented = bd.add(complement);
          String bds[] = complemented.toString().split("\\.");
          String integerPart = StringUtils.leftPad(bds[0], integerDigits + 1, '0');
          String decimalPart = bds.length == 2 ? bds[1] : "0";
  
          return integerPart + "." + decimalPart;
      }
docs: {@inheritDoc}