我遇到了我们试图开始工作的顶点代码的问题。我不断收到错误消息;
“System.MathException:不能将双'无穷大'表示为十进制:(系统代码)”
decimal rho = 1000;
decimal mu = 0.0019;
beta = 0.0757;
decimal r_b_eq8 = (0.33 * math.exp(0.76 * math.log(9.81) * math.exp(0.52 * math.log(rho / mu)) * math.exp(1.28 * math.log((math.exp((1/3)*math.log(beta)))))));
当我们尝试计算代码的 math.log(rho / mu) 部分时,就会出现问题。我尝试将 rho / mu 的结果四舍五入,将其定义为双精度数,还有很多其他的东西。我尝试将问题的除法部分设置为另一个变量并替换,
alpha = rho / mu;
... * math.log(alpha) ...
收效甚微。这是我们将变量定义为小数的方式的问题吗?math.log 与 9.81 以及“beta”作为结尾都可以正常工作。
我们使用 excel 和许多其他程序进行计算,从来没有这样的问题。我们正在以这种方式运行我们的代码,因为在没有 math.log/exp 技巧的情况下,salesforce 无法计算 (rho / mu) ^ 0.52。有没有办法解决这个或另一种方法来计算 (rho / mu) ^ 0.52 的提升,这不会给我们这个错误?