Не может представлять двойную «бесконечность» как десятичное, Salesforce

StackOverflow https://stackoverflow.com/questions/19823972

  •  04-07-2022
  •  | 
  •  

Вопрос

У меня проблемы с кодом вершины, который мы пытаемся работать. Я продолжаю получать ошибку;

"System.Matexception: не может представлять двойную« бесконечность »как десятичное: (системный код)»

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 и многими другими программами и никогда не имеем такой проблемы. Таким образом, мы запускаем наш код из -за неспособности вычислять (rho / mu) ^ 0,52 в Salesforce без трюка Math.Log / Exp. Есть ли способ обойти этот или другой способ компьютера, чтобы поднять (ro / mu) ^ 0,52, что не даст нам эту ошибку?

Это было полезно?

Решение

Я наконец получил ответ на это ... спасибо. Майк Чейл на salesforce.stackexchange.com

Это была глупая ошибка на самом деле, конечная проблема заключается в том, что было () около 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.

Последняя проблема заключалась в том, что этот расчет, похоже, переполняет то, что может справиться с Apex.

Я думаю, что было бы все равно неплохо не использовать работу для поднятия сил.

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

Еще раз спасибо Майк Чейл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top