gpt4 book ai didi

c# - 如何使用 C# decimal 计算子数组总和的百分比,使它们的总和严格为 100

转载 作者:太空狗 更新时间:2023-10-30 01:23:05 24 4
gpt4 key购买 nike

假设我有一个整数数组。为了简化起见,让我们在逻辑上将其分为两部分。

假设数组所有元素的总和2860800

假设 left half 所有元素的总和是 2834387

假设右半部分所有元素的总和是26413

现在通过 100m * leftHalfSum/totalSum 计算左半部分的百分比得到 99.07672678970917225950782998

同样,100m * rightHalfSum/totalSum 的右半部分百分比为 0.9232732102908277404921700224

现在,如果我在 Visual Studio 的 Watch 中添加这两个百分比,它会显示 100。但是,如果我在 Windows 的 Calculator 应用程序中添加这些,它会给我 100.0000000000000000000000000024,这是正确的。

基本上,我希望 100-leftHalfPercentage 严格等于 rightHalfPercentage,反之亦然。如果我在 Watch 中执行 100-leftHalfPercentage,它会给我 0.92327321029082774049217002。请注意,它与 rightHalfPercentage 完全相同,但缺少最后两位数字 24

谢谢。

最佳答案

您计算的数字是正确的,即它们以相同的精度表示百分比。

如果您希望它们的总和恰好为 100,那么您必须选择一个不太精确的值。您选择牺牲的值(value)将简单地通过从 100 中减去所有其他值(value)来计算。

例如,如果三个相等的组用一位小数计算,每个组将为 33.3%,总和为 99.9%。要使总和 100%,您需要牺牲一组的正确性并将其计算为 100 - 33.3 - 33.3 = 33.4

关于c# - 如何使用 C# decimal 计算子数组总和的百分比,使它们的总和严格为 100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12140975/

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