| using System; | 
 | using System.Collections.Generic; | 
 | using System.Globalization; | 
 | using System.Linq; | 
 | using System.Text; | 
 | using OfficeOpenXml.FormulaParsing.ExpressionGraph; | 
 |  | 
 | namespace OfficeOpenXml.FormulaParsing.Excel.Functions.Text | 
 | { | 
 |     public class Fixed : ExcelFunction | 
 |     { | 
 |         public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context) | 
 |         { | 
 |             ValidateArguments(arguments, 1); | 
 |             var number = ArgToDecimal(arguments, 0); | 
 |             var nDecimals = 2; | 
 |             var noCommas = false; | 
 |             if (arguments.Count() > 1) | 
 |             { | 
 |                 nDecimals = ArgToInt(arguments, 1); | 
 |             } | 
 |             if (arguments.Count() > 2) | 
 |             { | 
 |                 noCommas = ArgToBool(arguments, 2); | 
 |             } | 
 |             var format = (noCommas ? "F" : "N") + nDecimals.ToString(CultureInfo.InvariantCulture); | 
 |             if (nDecimals < 0) | 
 |             { | 
 |                 number = number - (number % (System.Math.Pow(10, nDecimals * -1))); | 
 |                 number = System.Math.Floor(number); | 
 |                 format = noCommas ? "F0" : "N0"; | 
 |             } | 
 |             var retVal = number.ToString(format); | 
 |             return CreateResult(retVal, DataType.String); | 
 |         } | 
 |     } | 
 | } |