Ejemplo n.º 1
0
        public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 2);
            var number       = ArgToDecimal(arguments, 0, context.Configuration.PrecisionAndRoundingStrategy);
            var significance = ArgToDecimal(arguments, 1);

            if (RoundingHelper.IsInvalidNumberAndSign(number, significance))
            {
                return(CreateResult(eErrorType.Num));
            }
            return(CreateResult(RoundingHelper.Round(number, significance, RoundingHelper.Direction.Up), DataType.Decimal));
        }
Ejemplo n.º 2
0
        public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 1);
            var number       = ArgToDecimal(arguments, 0);
            var significance = (arguments.Count() > 1) ? ArgToDecimal(arguments, 1) : 1;
            var mode         = (arguments.Count() > 2) ? ArgToDecimal(arguments, 2) : 0d;

            if (RoundingHelper.IsInvalidNumberAndSign(number, significance))
            {
                return(CreateResult(eErrorType.Num));
            }
            return(CreateResult(RoundingHelper.Round(number, significance, mode != 0d ? RoundingHelper.Direction.Up : RoundingHelper.Direction.AlwaysUp), DataType.Decimal));
        }