c# - 是否有用于 Pow(decimal, decimal) 的数学 API

标签 c# .net math decimal

是否有用于小数计算的库,尤其是Pow(decimal, decimal) 方法?我找不到。

它可以是免费的,也可以是商业的,只要有一个。

注意:我自己不会,不能用for循环,不能用Math.Pow, Math.Exp or Math .Log,因为他们都取double,而我不能用double。我不能使用系列,因为它会像 double 一样精确。

最佳答案

One of the multipliyers is a rate : 1/rate^(days/365).

没有十进制幂函数的原因是因为使用 decimal 进行计算毫无意义。使用 double

请记住,小数点是为了确保您对可以完全表示为十进制数的值进行精确算术运算。对于 ratedays 的合理值,任何其他子表达式的值显然不会精确地表示为短十进制值。您将要处理不精确的值,因此请使用专为快速计算稍微不精确的值而设计的类型,例如 double。

以 double 计算的结果将以某种方式相差数十亿分之一美分。谁在乎? 稍后您将把错误四舍五入。以 double 的形式进行费率计算。一旦你有一个结果需要重新换回货币,将结果乘以一万,四舍五入到最接近的整数,将其转换为小数,然后再除以一万,你将得到精确到小数点后四位的结果,这对于财务计算来说应该足够了。

关于c# - 是否有用于 Pow(decimal, decimal) 的数学 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6425501/

相关文章:

c# - 如何生成具有(单独)最小/最大限制的随机 double ?

c# - 使用 GhostscriptProcessor 创建 PDF/A

c# - 序列化不带引号的 int 类型

.net - SQL 服务代理成功了吗?

c# - 使用 BinaryFormatter 序列化的对象导致对象版本更改的原因是什么?

c# - Bot Framework 的 context.Wait() 不等待用户输入

java - 计算需要将数字添加到坐标才能改变下限值的次数

java - 我怎么知道一组线对象是近似封闭区域?

c# - 我应该如何对使用 Entity Framework 实现的存储库方法进行单元测试?

c# - 禁用 DataTable 更改跟踪