using Common.Attributes;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Command
{
public enum ComparisonFuncEnum
{
Big,
BigOrEqual,
Small,
SmallOrEqual,
Equal,
NotEqual
}
[BOBCommand]
public static class CommandMath
{
#region 返回值是Double类型数据
///
/// 两数相加(Param1 + Param2)
///
/// 传入值:实数1
/// 传入值:实数2
/// Param1:9 Param2:2 返回值:11
///
public static double ParamAdd(double Param1, double Param2)
{
return Param1 + Param2;
}
///
/// 两数相减(Param1 - Param2)
///
/// 传入值:实数1
/// 传入值:实数2
/// Param1:9 Param2:2 返回值:7
///
public static double ParamReduce(double Param1, double Param2)
{
return Param1 - Param2;
}
///
/// 两数相乘(Param1 * Param2)
///
/// 传入值:实数1
/// 传入值:实数2
/// Param1:9 Param2:2 返回值:18
///
public static double ParamMult(double Param1, double Param2)
{
return Param1 * Param2;
}
///
/// 两数相除(Param1 / Param2)
///
/// 传入值:实数1
/// 传入值:实数2
/// 传入值:保留几位小数
/// Param1:10 Param2:3 Param3:3 返回值:3.333
/// Param1:11 Param2:3 Param3:2 返回值:3.67
///
public static double ParamDivide(double Param1, double Param2, int Param3)
{
return Math.Round((Param1 / Param2), Param3);
}
///
/// 两数相除求余(Param1 % Param2)
///
/// 传入值:实数1
/// 传入值:实数2
/// Param1:9 Param2:2 返回值:1
///
public static double ParamRemainder(double Param1, double Param2)
{
return Param1 % Param2;
}
///
/// 实数开根号
///
/// 传入值:实数1
/// Param1:16 返回值:4
///
public static double ParamSquareRoot(double Param1)
{
return Math.Sqrt(Param1);
}
///
/// 实数的幂运算
///
/// 传入值:实数1
/// 传入值:实数1需要做几次方
/// Param1:3 Param2:2 返回值:9
/// Param1:2 Param2:3 返回值:8
/// Param1:5 Param2:4 返回值:625
///
public static double ParamPow(double Param1, double Param2)
{
return Math.Pow(Param1, Param2);
}
///
/// 实数的绝对值
///
/// 传入值:实数1
/// Param1:-3.7 返回值:3.7
///
public static double ParamAbs(double Param1)
{
return Math.Abs(Param1);
}
///
/// 实数的向下取整
///
/// 传入值:实数1
/// Param1:3.7 返回值:3
///
public static double ParamFloor(double Param1)
{
return Math.Floor(Param1);
}
///
/// 实数的向上取整
///
/// 传入值:实数1
/// Param1:3.7 返回值:4
///
public static double ParamCeiling(double Param1)
{
return Math.Ceiling(Param1);
}
#endregion
#region 返回值是String类型的数据
///
/// A与B转换为double后比较,返回A比较B的结果
///
/// 比较数1
/// 比较数2
/// 比较方法
/// 返回A比较B
public static bool Comparison(string a, string b, ComparisonFuncEnum 比较方法)
{
var aa = Convert.ToDouble(a);
var bb = Convert.ToDouble(b);
switch (比较方法)
{
case ComparisonFuncEnum.Big:
return aa > bb;
case ComparisonFuncEnum.BigOrEqual:
return aa >= bb;
case ComparisonFuncEnum.Small:
return aa < bb;
case ComparisonFuncEnum.SmallOrEqual:
return aa <= bb;
case ComparisonFuncEnum.Equal:
return aa == bb;
case ComparisonFuncEnum.NotEqual:
return aa != bb;
default:
return false;
}
}
///
/// 加法指令,转换为double后返回o1+o2
///
/// 运算数1
/// 运算数2
/// 返回o1+o2
public static string TwoNumberAdd(string o1, string o2)
{
return (Convert.ToDecimal(o1) + Convert.ToDecimal(o2)).ToString();
}
///
/// 减法指令,转换为double后返回o1-o2
///
/// 运算数1
/// 运算数2
/// 返回o1-o2
public static string TwoNumberReduce(string o1, string o2)
{
return (Convert.ToDecimal(o1) - Convert.ToDecimal(o2)).ToString();
}
///
/// 乘法指令,转换为double后返回o1*o2
///
/// 运算数1
/// 运算数2
/// 返回o1*o2
public static string TwoNumberMult(string o1, string o2)
{
return (Convert.ToDecimal(o1) * Convert.ToDecimal(o2)).ToString();
}
///
/// 除法指令,转换为double后返回o1/o2
///
/// 运算数1
/// 运算数2
/// 返回o1/o2
public static string TwoNumberDivide1(string o1, string o2)
{
return (Convert.ToDecimal(o1) / Convert.ToDecimal(o2)).ToString();
}
///
/// 转换为double后返回o1/o2
///
/// 运算数1
/// 运算数2
/// 保留几位小数
/// 返回o1/o2
public static string TwoNumberDivide2(string o1, string o2, int o3)
{
return (Math.Round((Convert.ToDecimal(o1) / Convert.ToDecimal(o2)), o3)).ToString();
}
///
/// 返回o1%o2
///
/// 运算数1
/// 运算数2
/// 返回o1%o2
public static string TwoNumberRemainder(string o1, string o2)
{
return (Convert.ToDecimal(o1) % (Convert.ToDecimal(o2))).ToString();
}
///
/// 计算两个数字的平方。
///
/// 第一个数字的字符串表示。
/// 第二个数字的字符串表示。
/// Param1:3 Param2:2 返回值:9
/// Param1:2 Param2:3 返回值:8
/// Param1:5 Param2:4 返回值:625
/// 返回两个数字的平方的字符串表示。
public static string NumberPow(string o1, string o2)
{
// 将输入的字符串转换为双精度浮点数,并计算它们的平方
// 最后将结果转换为字符串并返回
return Math.Pow(Convert.ToDouble(o1), Convert.ToDouble(o2)).ToString();
}
///
/// 计算一个数的平方根。
///
/// 要计算平方根的数字的字符串表示。
/// 返回输入数字的平方根的字符串表示。
public static string NumberSqrt(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其平方根。
// 最后将结果转换为字符串并返回。
return Math.Sqrt(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个数的绝对值。
///
/// 要计算绝对值的数字的字符串表示。
/// 返回输入数字的绝对值的字符串表示。
public static string NumberAbs(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其绝对值。
// 最后将结果转换为字符串并返回。
return Math.Abs(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个角度的正弦值。
///
/// 要计算正弦值的角度的字符串表示(单位为弧度)。
/// 返回输入角度的正弦值的字符串表示。
public static string NumberSin(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其正弦值。
// 最后将结果转换为字符串并返回。
return Math.Sin(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个角度的余弦值。
///
/// 要计算余弦值的角度的字符串表示(单位为弧度)。
/// 返回输入角度的余弦值的字符串表示。
public static string NumberCos(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其余弦值。
// 最后将结果转换为字符串并返回。
return Math.Cos(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个角度的正切值。
///
/// 要计算正切值的角度的字符串表示(单位为弧度)。
/// 返回输入角度的正切值的字符串表示。
public static string NumberTan(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其正切值。
// 最后将结果转换为字符串并返回。
return Math.Tan(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个数的反正弦值。
///
/// 要计算反正弦值的数的字符串表示。
/// 返回输入数的反正弦值的字符串表示(单位为弧度)。
public static string NumberASin(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其反正弦值。
// 最后将结果转换为字符串并返回。
return Math.Asin(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个数的反余弦值。
///
/// 要计算反余弦值的数的字符串表示。
/// 返回输入数的反余弦值的字符串表示(单位为弧度)。
public static string NumberACos(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其反余弦值。
// 最后将结果转换为字符串并返回。
return Math.Acos(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个数的反正切值。
///
/// 要计算反正切值的数的字符串表示。
/// 返回输入数的反正切值的字符串表示(单位为弧度)。
public static string NumberATan(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其反正切值。
// 最后将结果转换为字符串并返回。
return Math.Atan(Convert.ToDouble(o1)).ToString();
}
///
/// 计算 e 的给定次幂。
///
/// e 的指数的字符串表示。
/// 返回 e 的给定次幂的字符串表示。
public static string eIndex(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算 e 的给定次幂。
// 最后将结果转换为字符串并返回。
return Math.Exp(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个数的自然对数。
///
/// 要计算自然对数的数的字符串表示。
/// 返回输入数的自然对数的字符串表示。
public static string NumberNaturalLogarithm(string o1)
{
// 将输入的字符串转换为双精度浮点数,并计算其自然对数。
// 最后将结果转换为字符串并返回。
return Math.Log(Convert.ToDouble(o1)).ToString();
}
///
/// 计算一个数在指定基数下的对数。
///
/// 要计算对数的数的字符串表示。
/// 对数的基数的字符串表示。
/// 返回输入数在指定基数下的对数的字符串表示。
public static string NumberLogarithm(string o1, string Base)
{
// 将输入的字符串转换为双精度浮点数,并计算其在指定基数下的对数。
// 最后将结果转换为字符串并返回。
return Math.Log(Convert.ToDouble(o1), Convert.ToDouble(Base)).ToString();
}
///
/// 对输入数字进行四舍五入取整。
///
/// 要进行取整操作的数字的字符串表示。
/// 返回经过四舍五入取整后的结果的字符串表示。
public static string NumberRoundToNearest(string n1)
{
// 将输入的字符串转换为双精度浮点数,并进行四舍五入取整。
// 最后将结果转换为字符串并返回。
return Math.Round(Convert.ToDouble(n1)).ToString();
}
///
/// 对输入数字进行向上舍入取整。
///
/// 要进行取整操作的数字的字符串表示。
/// 返回经过向上舍入取整后的结果的字符串表示。
public static string NumberRoundUp(string n1)
{
// 将输入的字符串转换为双精度浮点数,并进行向上舍入取整。
// 最后将结果转换为字符串并返回。
return Math.Ceiling(Convert.ToDouble(n1)).ToString();
}
///
/// 对输入数字进行向下舍入取整。
///
/// 要进行取整操作的数字的字符串表示。
/// 返回经过向下舍入取整后的结果的字符串表示。
public static string NumberRoundDown(string n1)
{
// 将输入的字符串转换为双精度浮点数,并进行向下舍入取整。
// 最后将结果转换为字符串并返回。
return Math.Floor(Convert.ToDouble(n1)).ToString();
}
///
/// 获取圆周率π的字符串表示。
///
/// 返回圆周率π的字符串表示。
public static string PI()
{
// 返回圆周率π的字符串表示。
return Math.PI.ToString();
}
//public static Random random1 = new Random();
///
/// 生成一个随机整数。
///
/// 返回生成的随机整数的字符串表示。
public static string RandomNumber_Int()
{
Random random = new Random();
// 使用随机数生成器生成一个随机整数,并将其转换为字符串表示。
return random.Next().ToString();
}
///
/// 生成一个指定范围内的随机整数。
///
/// 随机数生成范围的最小值。
/// 随机数生成范围的最大值(不包含)。
/// 返回生成的指定范围内的随机整数的字符串表示。
public static string RandomNumber_RangeInt(int 最小, int 最大)
{
Random random = new Random();
// 使用随机数生成器生成一个指定范围内的随机整数,并将其转换为字符串表示。
return random.Next(最小, 最大).ToString();
}
///
/// 生成一个随机小数。
///
/// 返回生成的随机小数的字符串表示。
public static string RandomNumber_Decimal()
{
Random random = new Random();
// 使用随机数生成器生成一个随机小数,并将其转换为字符串表示。
return random.NextDouble().ToString();
}
///
/// 计算给定算式的结果。
///
/// 要计算的算式的字符串表示。
/// 返回计算结果的字符串表示。
public static string FormulaCalculation(string s)
{
// 创建一个 DataTable 实例来进行算式的计算。
DataTable dataTable = new DataTable();
// 使用 DataTable 的 Compute 方法计算给定的算式,并将结果转换为字符串表示。
return dataTable.Compute(s, "").ToString();
}
#endregion
}
}