Domanda

Ho problemi con un codice Apex che stiamo cercando di lavorare. Continuo a ricevere l'errore;

"System.MathException: Impossibile rappresentare il doppio 'Infinity' come decimale: (codice di sistema)"

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

Il problema si verifica quando proviamo a calcolare la parte del codice Math.log (Rho / MU). Ho provato a arrotondare il risultato di Rho / Mu, definendolo come un doppio, molte altre cose. Ho provato a impostare la parte di divisione del problema uguale a un'altra variabile e sostituita,

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

con piccoli successi. È un problema con il modo in cui abbiamo definito le nostre variabili come decimali? Math.log funziona bene con il 9.81 e anche con "beta" come fine.

Facciamo i calcoli con Excel e molti altri programmi e non abbiamo mai un problema come questo. Stiamo eseguendo il nostro codice in questo modo a causa dell'incapacità di calcolare (Rho / MU) ^ 0,52 in Salesforce senza il trucco matematico / exp. C'è un modo per aggirare questo o un altro modo per computer di allevamento di (rho / mu) ^ 0,52 che non ci darebbe questo errore?

È stato utile?

Soluzione

Finalmente ho avuto una risposta a questo ... grazie. Mike Chale su salesforce.stackexchange.com

È stato davvero un errore sciocco, il problema finale è che ci sarebbe stato () circa 0,76 * Math.log (9,81) (0,33 * (Math.exp (0,76 * Math.log (9.81)) * Math.exp (0,52 * Math.log (rho / mu)) * rappresenta 9,81^0.76.

Il problema finale era che questo calcolo sembra traboccare ciò che Apex può gestire.

Penso che sarebbe comunque bello non dover usare il lavoro per sollevare i poteri.

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

Grazie di nuovo Mike Chale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top