private static int parseFraction(String v) {
    int multiplier = 100;
    int r = 0;
    for (int i = 0; i < v.length(); i++) {
      char c = v.charAt(i);
      int x = c < '0' || c > '9' ? 0 : (c - '0');
      r += multiplier * x;
      if (multiplier < 10) {
        // We're at the last digit. Check for rounding.
        if (i + 1 < v.length() && v.charAt(i + 1) >= '5') {
          ++r;
        }
        break;
      }
      multiplier /= 10;
    }
    return r;
  }
Parses a fraction, multiplying the first character by {@code multiplier}, the second character
by {@code multiplier / 10}, the third character by {@code multiplier / 100}, and so forth.

<p>For example, {@code parseFraction("1234", 100)} yields {@code 123}.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/util/DateTimeUtils.java