gpt4 book ai didi

使用小数类型的 C# 百分比计算会导致问题

转载 作者:太空狗 更新时间:2023-10-29 22:29:44 25 4
gpt4 key购买 nike

decimal hundred = 100;
decimal value = 5000;
decimal sum = 1100000;

decimal valuePercentOfSum = value / sum * hundred; //result = 0.4545454545454545454545454500M
decimal percentOfSum = sum / hundred * valuePercentOfSum; //result = 4999.9999999999999999999999500M

我希望 percentOfSum 的结果是 value (5000) 的原始值

我需要一种方法来来回进行这样的计算,而且我不能简单地进行任何舍入。

有什么帮助吗?

最佳答案

当您处理无理数和/或数值类型时,必须有人舍入(无论您喜欢与否)精度有限

如果你使用double,它会为你Round,如果你使用decimal,它会更精确。但是,您将不得不接受这样一个事实:它保留了它所拥有的精度。

根据您想要执行的操作,小数 可能不太方便,但如果您了解这两种类型 的后果(并且天下没有免费的午餐) ,您可以相应地进行选择。

关于使用小数类型的 C# 百分比计算会导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170601/

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