小编Mar*_*cel的帖子

财务计算:加倍还是小数?

我们正在进行财务计算.我发现这篇关于存储货币值为小数的帖子:十进制vs双! - 我应该使用哪一个?何时使用?

所以我将金额存储为小数.

我有以下计算:12.000*(1/12)= 1.000

如果我使用十进制数据类型来存储金额和结果金额,我得不到预期的结果

// First approach:    
decimal ratio = 1m / 12m;
decimal amount = 12000;
decimal ratioAmount = amount * ratio;
ratioAmount = 999.9999999999999

// Second approach:
double ratio = 1d / 12d;
decimal amount = 12000;
decimal ratioAmount = (decimal)((double)amount * ratio);
ratioAmount = 1.000

// Third approach:
double ratio = 1d / 12d;
double amount = 12000;
double ratioAmount = amount * ratio;
ratioAmount = 1.000
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法?每个人都在谈论金额/金钱必须存储为小数.

.net c#

3
推荐指数
2
解决办法
440
查看次数

标签 统计

.net ×1

c# ×1