Byces.Calculator
1.0.2
Additional Details
This package has a severe level bug, causing specific calculations to give wrong results. Update to the latest version.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Byces.Calculator --version 1.0.2
NuGet\Install-Package Byces.Calculator -Version 1.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Byces.Calculator" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Byces.Calculator --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Byces.Calculator, 1.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Byces.Calculator as a Cake Addin
#addin nuget:?package=Byces.Calculator&version=1.0.2
// Install Byces.Calculator as a Cake Tool
#tool nuget:?package=Byces.Calculator&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Byces.Calculator
A simple .NET calculator that solves string math expressions
Usage example
string expression = "2 + 5 * 3";
MathResult mathResult = MathResultBuilder.GetMathResult(expression);
// or
MathResult mathResult = new MathResultBuilder().WithExpression(expression).Build();
if (mathResult.IsValid) // true
{
Console.WriteLine(mathResult.Result); // 17
}
else
{
Console.WriteLine(mathResult.ErrorMessage);
}
Public Models
MathResult (readonly struct)
Property | Type | Summary |
---|---|---|
IsValid | bool | Gets the validity of the MathResult instance |
ErrorMessage | string? | Gets the error message of a possible syntax problem |
ErrorType | ResultErrorType | Gets the expression error type |
Result | double | Gets the expression result |
MathResultBuilder (class)
Property / Method | Type | Summary |
---|---|---|
Expression | string | Gets or sets the expression of a MathResultBuilder |
WithExpression(expression) | MathResultBuilder | Sets the expression to be builded |
Build() | MathResult | Builds the MathResult with the given information |
static GetMathResult(expression) | MathResult | Gets the MathResult without having to create a MathResultBuilder object |
Building expressions
Before showing some syntax examples, here are some observations:
- Numbers, operations and self operations are not case sensitive
- The builder is not sensitive to whitespace and using it has a low impact on performance
// You can use signs to represent negative and positive numbers
string expressionExample1 = "-5 + +5";
// You can use parentheses to set priorities in the expression
string expressionExample2 = "((2 + 5) * 2) * 3";
// You can also represent numbers like this
string expressionExample3 = "1E+3";
// This is an expression with two operations and two self operations
string expressionExample4 = "fact(2 + 3) * fact3";
Available operations
Add
string expression1 = "2+4+6";
string expression2 = "2 add 4 add 6";
Subtract
string expression1 = "2-4-6";
string expression2 = "2 sub 4 sub 6";
Multiply
string expression1 = "2*4*6";
string expression2 = "2 mul 4 mul 6";
Divide
string expression1 = "2/4/6";
string expression2 = "2 div 4 div 6";
Power
string expression1 = "2^4^6";
string expression2 = "2 pow 4 pow 6";
Root
string expression1 = "2√4√6";
string expression2 = "2 rt 4 rt 6";
Modulus
string expression1 = "2%4%6";
string expression2 = "2 mod 4 mod 6";
Available self operations
Factorial
string expression = "fact(3)";
Square root
string expression1 = "sqrt(3)";
string expression2 = "√3";
Cube root
string expression = "cbrt(3)";
Cosine
string expression = "cos(3)";
Sine
string expression = "sin(3)";
Tangent
string expression = "tan(3)";
Cosine hyperbolic
string expression = "cosh(3)";
Sine hyperbolic
string expression = "sinh(3)";
Tangent hyperbolic
string expression = "tanh(3)";
Radian (360º)
string expression = "rad(3)";
Available special numbers
PI
string expression1 = "π";
string expression2 = "pi";
Euler
string expression = "euler";
Feedback and Bugs
Feel free to send suggestions and problems, thanks to those who read this far! 😄
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- MathNet.Numerics (>= 5.0.0)
-
net6.0
- MathNet.Numerics (>= 5.0.0)
-
net7.0
- MathNet.Numerics (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
3.3.0 | 73 | 4/11/2024 | |
3.2.0 | 105 | 3/18/2024 | |
3.1.1 | 95 | 2/22/2024 | |
3.1.0 | 100 | 2/21/2024 | |
3.0.1 | 99 | 1/28/2024 | |
3.0.0 | 131 | 9/16/2023 | |
2.0.0 | 202 | 3/10/2023 | |
1.1.4 | 212 | 2/25/2023 | |
1.1.3 | 233 | 2/23/2023 | |
1.1.2 | 280 | 1/28/2023 | |
1.1.1 | 277 | 1/28/2023 | |
1.1.0 | 280 | 1/28/2023 | |
1.0.2 | 281 | 1/24/2023 | |
1.0.1 | 268 | 1/23/2023 | |
1.0.0 | 283 | 1/23/2023 |