gpt4 book ai didi

c# - 如何在 C# 中正确地多次分割/除一个整数?

转载 作者:行者123 更新时间:2023-12-02 02:19:56 25 4
gpt4 key购买 nike

假设我有 21875totalQuantityNumber .

我需要拆分totalQuantityNumber在 for 循环中的多天中。第一天20000,第二天1875。在最后的 for 循环中,我对分割数量进行求和,以便稍后验证分割是否正确。 totalSplittedQuantity += splittedQuantity .

在拆分结束时,我会验证拆分的产品数量的总和是否与最初计划的产品总数相同。 totalQuantityNumber== totalSplittedQuantity它应该是 21875 == 21875但当数字是奇数时,我总是落后一个数字。 21875 == 21874 。我尝试将除法设为小数并在最后将其四舍五入,但问题仍然存在,有时结果也超出了 1。 21875 == 21876 .

这是我在循环内的划分: splittedQuantity = splittedDiffDuration * totalQuantityNumber/ totalDuration;

totalDurationsplittedDiffDuration几分钟后。 totalDuration = 120; splittedDiffDuration = 60;

基本上,我从日期时间间隔(开始日期,结束日期)开始循环遍历每一天。周一至周二 - 在计划的时间内分配每天的数量。假设周一计划用 60 分钟生产 X 数量,周二也同样计划用 60 分钟生产剩余数量。

我是编程新手,数学不太好。我的部门做错了什么?

最佳答案

无论数字类型(整数、小数、浮点),都会因舍入或数字表示而产生错误。

要实现您想要的效果,您需要计算最后一个比例,作为总计与所有先前比例之和之间的差。

例如,给定总数和百分比:

总数:100
第一天:30%
第 2 天:17 点&
第三天:53%

比例为:
第一天:100 * 30% = 30
第 2 天:100 * 17% = 17
第 3 天:总计 - (第 1 天 + 第 2 天) = 100 - (30 + 17) = 53。

当然,这会为您提供最后一个结果的近似结果,但这是使该表达式始终为真的唯一方法:

(第 1 天 + 第 2 天 + 第 3 天)= 总计

关于c# - 如何在 C# 中正确地多次分割/除一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66578062/

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