salesforce - 我如何在销售人员中以小数幂实现指数
问题描述
((82125.49845) / (0 + 1)) * ((1 + ((2.84*1)/100)) / (1 + ((2.84*1)/100) + 0.005))^(14.083)
以上计算给了我正确的值 76 703.2452
但是当我在 salesforce 中使用 Math.pow 做这些事情时,它并没有给我确切的结果并帮助我把它整理出来,下面是我在 salesforce apex 类
1 中使用的选项) System.debug('>>> pow=' + Math.pow((82125.49845 / (0 + 1)) * ((1 + ((2.84*1)/100)) / (1 + ((2.84*1) /100) + 0.005).doubleValue(),14.0832.doubleValue());
2) System.debug('>>> final=' +(82125.49845 / (0 + 1)) * ((1 + ((2.84* 1)/100)) / (1 + ((2.84*1)/100) + 0.005)).pow(14.0832));
解决方案
问题是该pow
函数仅适用于Double
s,其精度低于Decimal
实数计算类型。
该类Math
确实支持Decimal
使用自然指数和自然对数的 s 求幂,所以这应该适合你:
Math.exp ( Math.log ((82125.49845) / (0 + 1)) + 14.083 * Math.log ((1 + ((2.84*1)/100)) / (1 + ((2.84*1)/100) + 0.005)) )