首页 > 解决方案 > 我如何在销售人员中以小数幂实现指数

问题描述

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

标签: salesforcesalesforce-service-cloudsalesforce-communities

解决方案


问题是该pow函数仅适用于Doubles,其精度低于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)) )

推荐阅读