動作させようとしている頂点コードに問題があります。エラーが発生し続けます。
「System.MathException: Double 'Infinity' を Decimal として表すことはできません: (システム コード)」
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 の結果を丸めたり、double として定義したり、他の多くのことを試してみました。問題の除算部分を別の変数に等しく設定して代入してみましたが、
alpha = rho / mu;
... * math.log(alpha) ...
少しの成功で。これは、変数を小数として定義した方法に問題がありますか? math.log は 9.81 で問題なく動作し、末尾が「ベータ」でも問題ありません。
Excel や他の多くのプログラムで計算を行っていますが、このような問題はありません。math.log/exp トリックなしでは salesforce で (rho / mu) ^ 0.52 を計算できないため、この方法でコードを実行しています。これを回避する方法、または (rho / mu) ^ 0.52 を計算してこのエラーを発生させない別の方法はありますか?