@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object numberObj = numberParser.parse(sourceData, rowIndex, context);
        if (numberObj == null) {
            return null;
        }
        BigDecimal number = OperatorTools.parseBigDecimal(numberObj);
        if (reservedDigitsParser != null) {
            Object reservedDigitsObj = reservedDigitsParser.parse(sourceData, rowIndex, context);
            int reservedDigits = OperatorTools.parseBigDecimal(reservedDigitsObj).intValue();
            return number.setScale(reservedDigits, RoundingMode.HALF_UP).doubleValue();
        }
        return Math.round(number.doubleValue());
    }
RoundFunction  ->  ROUND(x [,y])
description:
- Return NULL if 'x' is NULL
- Return the nearest integer to 'x', with optional parameter 'y' indicating the number of decimal places to be rounded
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/arithmetic/RoundFunction.java