gpt4 book ai didi

c# - 想知道为什么我们正在使用的书使用 double 和小数而不是小数

转载 作者:行者123 更新时间:2023-11-30 14:01:05 26 4
gpt4 key购买 nike

我想知道为什么我们使用的书的示例混合使用小数和 double ,并在必要时强制转换为小数。将所有内容都设为小数并完全避免强制转换不是更简单吗?

这是我很好奇的主要代码块。

decimal amount;
decimal principal = 1000;
double rate = 0.05;

for (int year = 1; year <= 10; year++)
{
amount = principal * ((decimal) Math.Pow(1.0 + rate, year));
}

是否有任何我忽略的性能或准确性问题?

最佳答案

Math.Pow 没有与 decimal 一起使用的重载 - 实数求幂本质上是不准确的,因此对于这样的重载没有多大意义存在。

现在,由于唯一使用 rate 的地方是计算复合因子(Pow 调用),因此将其声明为 double 是有意义的 - 如果它只是被“丢弃”,那么更高的精度将无济于事。

其余变量代表金钱,这是 decimal用例(这就是为什么 decimal 文字的后缀是 M)。可以想象另一种计算,其中 $2.10commmision 被添加到 amount - 我们不希望这样的计算变得不准确一种讨厌的(不准确的)复利计算中的类型一致性。

因此不一致。

关于c# - 想知道为什么我们正在使用的书使用 double 和小数而不是小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com