JQuery 和 C# 中的公式计算

本文关键字:计算 JQuery | 更新日期: 2023-09-27 18:31:39

公式:

(((A+(2*B))^(3/2))/((C+(2*D))^(3/2)))*(E-F)

在这里我传递 A=2、B=2、C=3、D=4、E=10、F=5我已经在JQueryC#中用eval(formula)做到了这一点,但没有工作。与EXCEL相比,它返回的结果不同。你能帮我解决这个问题吗?

JQuery 和 C# 中的公式计算

有两个问题会导致 C# 和 JavaScript 返回不同的结果。

首先,C# 会将这两个(3/2)部分视为整数除法,从而给出1 。 JavaScript 将给出 1.5 的预期结果。

另一个主要问题是^运算符。 在 C# 和 JavaScript 中,这是一个布尔值排除或运算,在 Excel 中,这是一个幂运算。 它不会将A + (2 * B)的结果提高到1.5次方,而是执行 XOR 运算,将双方转换为整数并翻转低位。

JavaScript 的等效表达式是:

Math.pow(A + 2 * B, 1.5) / Math.pow(C + 2 * D, 1.5) * (E - F)

对于 C#,唯一的区别是大小写:

Math.Pow(A + 2 * B, 1.5) / Math.Pow(C + 2 * D, 1.5) * (E - F)

C# 表达式计算器是否可以处理这个问题是下一个问题。