コード例 #1
0
ファイル: Mround.cs プロジェクト: yosmanyhs/EPPlus-1
        public override CompileResult Execute(IEnumerable <FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 2);
            var number       = ArgToDecimal(arguments, 0);
            var significance = ArgToDecimal(arguments, 1);

            if ((number > 0 && significance < 0) || (number < 0 && significance > 0))
            {
                return(CreateResult(eErrorType.Num));
            }
            return(CreateResult(RoundingHelper.Round(number, significance, RoundingHelper.Direction.Nearest), DataType.Decimal));
        }
コード例 #2
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));
        }
コード例 #3
0
ファイル: CeilingMath.cs プロジェクト: MessiDaGod/EPPlus-1
        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));
        }