如何在 C# 中多次正确 split/divide 一个整数?
How can I split/divide an integer number multiple times correctly in C#?
假设我有 21875
作为 totalQuantityNumber
。
我需要在 for 循环中将 totalQuantityNumber
拆分多天。第一天 20000,第二天 1875。
最后在我的 for 循环中,我对拆分后的数量求和,以便稍后验证拆分是否正确。 totalSplittedQuantity += splittedQuantity
.
在拆分结束时,我验证拆分产品数量的总和是否与最初计划的产品总数ex相同。 totalQuantityNumber== totalSplittedQuantity
应该是 21875 == 21875
但是当数字是奇数时我总是差一个数字。 21875 == 21874
。我试图使除法小数化并在最后四舍五入,但问题仍然存在,有时结果也超过了 1。 21875 == 21876
.
这是我在循环中的划分:
splittedQuantity = splittedDiffDuration * totalQuantityNumber/ totalDuration;
totalDuration
和 splittedDiffDuration
以分钟为单位。 totalDuration = 120; splittedDiffDuration = 60;
基本上,我从 DateTime 间隔(startDate、endDate)ex 循环遍历每一天。周一至周二 - 在计划前的持续时间内拆分每天的数量。假设周一计划用 60 分钟生产 X 数量,周二同样计划用 60 分钟生产剩余数量。
我是编程新手,数学不太好。我的部门做错了什么?
无论数字类型(整数、小数、浮点数)如何,都会因四舍五入或数字表示而出现错误。
为了达到你想要的效果,你需要将最后一个比例计算为总和与之前所有比例之和的差值。
例如,给定这个总数和这个百分比:
总计:100
第 1 天:30%
第 2 天:17&
第 3 天:53%
比例为:
第 1 天:100 * 30% = 30
第 2 天:100 * 17% = 17
第 3 天:总计 - (Day1 + Day2) = 100 - (30 + 17) = 53.
当然,这会为您提供最后一个结果的近似结果,但这是使此表达式始终为真的唯一方法:
(第 1 天 + 第 2 天 + 第 3 天)= 总计
假设我有 21875
作为 totalQuantityNumber
。
我需要在 for 循环中将 totalQuantityNumber
拆分多天。第一天 20000,第二天 1875。
最后在我的 for 循环中,我对拆分后的数量求和,以便稍后验证拆分是否正确。 totalSplittedQuantity += splittedQuantity
.
在拆分结束时,我验证拆分产品数量的总和是否与最初计划的产品总数ex相同。 totalQuantityNumber== totalSplittedQuantity
应该是 21875 == 21875
但是当数字是奇数时我总是差一个数字。 21875 == 21874
。我试图使除法小数化并在最后四舍五入,但问题仍然存在,有时结果也超过了 1。 21875 == 21876
.
这是我在循环中的划分:
splittedQuantity = splittedDiffDuration * totalQuantityNumber/ totalDuration;
totalDuration
和 splittedDiffDuration
以分钟为单位。 totalDuration = 120; splittedDiffDuration = 60;
基本上,我从 DateTime 间隔(startDate、endDate)ex 循环遍历每一天。周一至周二 - 在计划前的持续时间内拆分每天的数量。假设周一计划用 60 分钟生产 X 数量,周二同样计划用 60 分钟生产剩余数量。
我是编程新手,数学不太好。我的部门做错了什么?
无论数字类型(整数、小数、浮点数)如何,都会因四舍五入或数字表示而出现错误。
为了达到你想要的效果,你需要将最后一个比例计算为总和与之前所有比例之和的差值。
例如,给定这个总数和这个百分比:
总计:100
第 1 天:30%
第 2 天:17&
第 3 天:53%
比例为:
第 1 天:100 * 30% = 30
第 2 天:100 * 17% = 17
第 3 天:总计 - (Day1 + Day2) = 100 - (30 + 17) = 53.
当然,这会为您提供最后一个结果的近似结果,但这是使此表达式始终为真的唯一方法:
(第 1 天 + 第 2 天 + 第 3 天)= 总计