Question

J'ai des problèmes avec un code APEX que nous essayons de travailler. Je continue d'obtenir l'erreur;

"System.MathException: Impossible de représenter Double 'Infinity' comme décimal: (code système)"

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))))))); 

Le problème se produit lorsque nous essayons de calculer la partie math.log (rho / mu) du code. J'ai essayé d'arrondir le résultat de Rho / Mu, le définissant comme un double, bien d'autres choses. J'ai essayé de définir la partie de division du problème égal à une autre variable et substituée,

alpha = rho / mu;
... * math.log(alpha) ... 

avec peu de succès. Est-ce un problème avec la façon dont nous avons défini nos variables comme des décimales? Le Math.log fonctionne très bien avec le 9.81 et aussi avec "Beta" comme fin.

Nous faisons les calculs avec Excel et de nombreux autres programmes et n'avons jamais de problème comme celui-ci. Nous exécutons notre code de cette façon en raison de l'incapacité de calculer (Rho / Mu) ^ 0,52 dans Salesforce sans l'astuce Math.log / EXP. Existe-t-il un moyen de contourner ce moyen ou une autre façon d'ordinateur la levée de (rho / mu) ^ 0,52 qui ne nous donnerait pas cette erreur?

Était-ce utile?

La solution

J'ai finalement obtenu une réponse à ce ... merci. Mike Chale sur Salesforce.stacKexchange.com

C'était vraiment une erreur idiote, le problème ultime est qu'il aurait dû () environ 0,76 * math.log (9.81) (0,33 * (math.exp (0,76 * math.log (9.81)) * Math.exp (0,52 * math.log (rho / mu)) * Il représente 9,81 ^ 0,76.

Le dernier problème était que ce calcul semble être débordant ce que l'apex peut gérer.

Je pense que ce serait toujours bien de ne pas avoir à utiliser le travail pour élever les pouvoirs.

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

Merci encore Mike Chale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top