PBIG
  • Home
  • Real Estate
    • South Florida IDX
    • Central Florida IDX
    • Real Estate - Ocala JV
    • Porto Office Building
    • Real Estate Programs >
      • PB Homeownership Program
      • Senior Technical Assistance for Residence Retention Program
  • About Investing
    • Commodities >
      • Sama Ker Gui >
        • Immigration Canada
    • Mane Academie
  • Social Interests
  • Contact

{ /// /// This simply stores a variable name and its value so when this key is found in a expression it gets the value accordingly. /// public Dictionary Variables { get; private set; } /// /// The expression itself, each value and operation must be separated with SPACES. The expression does not support PARENTHESES at this point. /// public string Expression { get; set; } public DynamicFormula() { this.Variables = new Dictionary(); } public double CalculateResult() { if (string.IsNullOrWhiteSpace(this.Expression)) throw new Exception("An expression must be defined in the Expression property."); double? result = null; string operation = string.Empty; //This will be necessary for priorities operations such as parentheses, etc... It is not being used at this point. List aux = new List(); foreach (var lexema in Expression.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)) { //If it is an operator if (lexema == "*" || lexema == "/" || lexema == "+" || lexema == "-") { operation = lexema; } else //It is a number or a variable { double value = double.MinValue; if (Variables.ContainsKey(lexema.ToLower())) //If it is a variable, let's get the variable value value = Variables[lexema.ToLower()]; else //It is just a number, let's just parse value = double.Parse(lexema); if (!result.HasValue) //No value has been assigned yet { result = value; } else { switch (operation) //Let's check the operation we should perform { case "*": result = result.Value * value; break; case "/": result = result.Value / value; break; case "+": result = result.Value + value; break; case "-": result = result.Value - value; break; default: throw new Exception("The expression is not properly formatted."); } } } } if (result.HasValue) return result.Value; else throw new Exception("The operation could not be completed, a result was not obtained."); } /// /// Add variables to the dynamic math formula. The variable should be properly declared. /// /// Should be declared as "VariableName=VALUE" without spaces public void AddVariable(string variableDeclaration) { if (!string.IsNullOrWhiteSpace(variableDeclaration)) { var variable = variableDeclaration.ToLower().Split('='); //Let's make sure the variable's name is LOWER case and then get its name/value string variableName = variable[0]; double variableValue = 0; if (double.TryParse(variable[1], out variableValue)) this.Variables.Add(variableName, variableValue); else throw new ArgumentException("Variable value is not a number"); } else { //Could throw an exception... or just ignore as it not important... } } }

Services

Real Estate
Startups/Technologies
Commodities
​Sport

Company

The Company

Support

Contact
FAQ
Terms of Use
AN AVS CORP (WY) PRODUCTION © COPYRIGHT 2025. ALL RIGHTS RESERVED.
​ Alexandre V.-Smejda LLC is a licensed real estate brokerage and abides by Equal Housing Opportunity laws. All material presented herein is intended for informational purposes only. Information is compiled from sources deemed reliable but is subject to errors, omissions, changes in price, condition, sale, or withdrawal without notice. Photos may be virtually staged or digitally enhanced and may not reflect actual property conditions. 
  • Home
  • Real Estate
    • South Florida IDX
    • Central Florida IDX
    • Real Estate - Ocala JV
    • Porto Office Building
    • Real Estate Programs >
      • PB Homeownership Program
      • Senior Technical Assistance for Residence Retention Program
  • About Investing
    • Commodities >
      • Sama Ker Gui >
        • Immigration Canada
    • Mane Academie
  • Social Interests
  • Contact