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我已经在JQuery
和C#
中用eval(formula)
做到了这一点,但没有工作。与EXCEL
相比,它返回的结果不同。你能帮我解决这个问题吗?
有两个问题会导致 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# 表达式计算器是否可以处理这个问题是下一个问题。