質問

私たちが機能させようとしている頂点コードに問題があります。エラーが発生し続けます。

「System.Mathexception:DecimalとしてDouble 'Infinity'を表すことはできません:(システムコード)」

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と「ベータ」でもうまく機能します。

Excelや他の多くのプログラムで計算を行い、このような問題はありません。 Math.log / exp Trickなしで、コンピューティング(Rho / Mu) ^ 0.52のSalesforceで計算できないため、この方法でコードを実行しています。このエラーを与えてくれない(rho / mu) ^ 0.52の上昇をコンピューターにする方法や別の方法はありますか?

役に立ちましたか?

解決

私はついにこれに対する答えを得ました... thx。 Salesforce.stackexchange.comのMike Chale

それは本当に愚かな間違いでした、究極の問題は、0.76 * math.log(9.81)(0.33 *(math.exp(0.76 * math.log(9.81)) * math.exp(0.52)があるはずです() * math.log(rho / mu)) * 9.81^0.76を表します。

最後の問題は、この計算が頂点が処理できるものにあふれているように見えることでした。

私はまだ、権力への昇給のために回避を使う必要がないと思います。

https://salesforce.stackexchange.com/questions/21112/cannot-represent-double-infinity-as-a-Decimal-salesforce

マイク・チャーレに再び感謝します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top