gpt4 book ai didi

c# - 排序大小的功能问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:37 25 4
gpt4 key购买 nike

所以我正在编写一个小型 C# 控制台应用程序,它应该模仿某种购物系统。所有产品均以包装形式出售(不是单独包装),包装尺寸为 4 件、10 件或 15 件。

如果 Qty 大小为 28,它应该返回如下结果:2 x 10 包 + 2 x 4 包。或者给定数量大小为 25,它应该返回如下结果:1 x 15 包 + 1 x 10 包并且该函数需要高效,因此它返回最少的包。(显然忽略 scenerio 的数量可能是 3 - 因为没有那么小的包装尺寸)

这是我目前的代码:
数量 = 28,大包装 = 15,中包装 = 10,小包装 = 4

            double total = 0.00;
int tmpQty = qty;

while (tmpQty != 0)
{
if ((tmpQty >= LargePack) && ((tmpQty % LargePack) % 1) == 0)
{
tmpQty -= LargePack;
lg += 1;
total =+ (lg * LargePrice);
}
else if ((tmpQty >= MediumPack))
{
tmpQty -= MediumPack;
md += 1;
total =+ (md * MediumPrice);
}
else if ((SmallPack !=0) && (tmpQty >= SmallPack) && (tmpQty < MediumPack))
{
tmpQty -= SmallPack;
sm += 1;
total =+ (sm * SmallPrice);
}
}

我的想法 - 因为数量大约为 28,我需要它跳过第一个 IF 语句,我想我会检查 tmpQty (28)/LargePack (15) 是否是一个整数 - 这它不应该,然后它会转到第二个 IF 语句。但由于某种原因,公式:

(tmpQty % LargePack) %1 == 0

总是等于 0 - 所以它是真的...当它应该是假的时候。

或者如果有人有更好的方法来计算 Pack 大小,我愿意接受建议。注意 - 此处未定义包装尺寸,因为各种不同的产品使用相同的分类过程。

最佳答案

您最大的问题是您不了解 % 的作用。它不返回小数。它的工作原理类似于小学部的“剩余部分”。 7 % 5 将返回 2。如果您想保持相同的逻辑(期望百分比),那么您需要除法,但您的变量需要是 double 或 float 。如果不是,C# 会将结果转换为一个没有小数的整数。希望对您有所帮助。

关于c# - 排序大小的功能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56776836/

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