MathExpressionParser 1.0.0
dotnet add package MathExpressionParser --version 1.0.0
NuGet\Install-Package MathExpressionParser -Version 1.0.0
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="MathExpressionParser" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MathExpressionParser --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MathExpressionParser, 1.0.0"
#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 MathExpressionParser as a Cake Addin #addin nuget:?package=MathExpressionParser&version=1.0.0 // Install MathExpressionParser as a Cake Tool #tool nuget:?package=MathExpressionParser&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MathExpressionParser
Общая информация
MathExpressionParser - библиотека для парсинга математических выражений.
Nuget
MathExpressionParser для .netstandard2.1
Быстрый старт
var parser = MathParserBuilder.BuildDefaultParser();
var output = parser.Parse("2 + 2 * 2"); // 6
Возможности библиотеки
Встроенные операторы
- + - сложение
- - - вычитание
- / - деление
- * - умножение
- ^ - возведение в степень
- // - деление нацело
- % - деление с остатком
- ( ) - изменение приоритета операций
Синтаксис вызова функций
some_func(arg1, arg2, arg3, ...)
Все функции не чувствительны к регистру, можно писать как max(...), так и MAX(...) и т.д.
Синтаксис использования констант
pi
e
max
min
Все константы не чувствительны к регистру, можно писать как pi, так и PI и т.д.
Запись чисел
42069
- десятичное число0xFBF
- шестнадцатеричное число0o453
- восьмеричное число0b101
- двоичное число
Встроенные константы
pi
- число пиe
- число emax
- максимальное значение числаdouble
(1.7976931348623157E+308)min
- минимальное значение числаdouble
(-1.7976931348623157E+308)
Встроенные функции
- sin(x) - синус числа x
- cos(x) - косинус числа x
- tg(x) - тангенс числа x
- ctg(x) - котангенс числа x
- arcsin(x) - арксинус числа x
- arccos(x) - арккосинус числа x
- arctg(x) - арктангенс числа x
- arcctg(x) - арккотангенс числа x
- pow(x, y) - число x возведенное в степень y
- asb(x) - модуль числа x
- sqrt(x) - квадратный корень числа x
- log(x, y) - логарифм числа x по основанию y
- lg(x) - десятичный логарифм числа x
- ln(x) - натуральный логарифм числа x
- exp(x) - экспонента числа x
- sign(x) - возвращает знак числа (-1 если число меньше 0, 1 если больше 0, 0 если число равно 0)
- d2r(x) - переводит число x в градусах в радианы
- r2d(x) - переводит число x в радианах в градусы
- max(x, y, ...) - возвращает максимальное число из x, y и т.д. (функция принимает 2 или больше аргументов)
- min(x, y, ...) - возвращает минимальное число из x, y и т.д. (функция принимает 2 или больше аргументов)
- avg(x, y, ...) - возвращает среднее число из x, y и т.д. (функция принимает 2 или больше аргументов)
Построение не стандартного парсера
Создание парсера без стандартных функций и констант
var parser = MathParserBuilder
.Create()
.Build();
Создание парсера со всеми встроенными функциями и всеми встроенными константами
var parser = MathParserBuilder
.Create()
.WithDefaultConstants()
.WithDefaultFunctions()
.Build();
Запись выше эквивалента данной записи
var parser = MathParserBuilder.BuildDefaultParser()
Создание парсера с нестандартными функциями и константами
var parser = MathParserBuilder
.Create()
.WithConstant("my_const", 54)
.WithFunction("my_func", 2, args => (args[0] + args[1]) / 2) // кол-ко аргументов строго 2
.WithFunction("my_func1", argsCount => argsCount >= 3, args => args.Average() / 2) // кол-ко аргументов больше или равно 3
.Build();
Пример использования
Пример консольного приложения - TestProject.
var parser = MathParserBuilder.BuildDefaultParser()
var output = parser.Parse("pow(2 + 2 * 2 - sqrt(2) / cos(max(pi / 2, pi)), 2)") // 54.97
Лицензия
Этот проект лицензирован MIT.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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
- No dependencies.
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 |
---|---|---|
1.0.0 | 171 | 8/23/2023 |
First publication