namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int 總出貨數量 = 24;
int 預計包裝數量 = 5;
// 傳統寫法一:/ 搭配 %
int 實際包裝數量_1 = 總出貨數量 / 預計包裝數量;
int 剩餘數量_1 = 總出貨數量 % 預計包裝數量;
if (剩餘數量_1 > 0)
實際包裝數量_1++;
// 傳統寫法二:Math.Ceiling 無條件進位
int 實際包裝數量2 = (int)Math.Ceiling((double)總出貨數量 / 預計包裝數量);
// .NET Framework:透過 out 回傳剩餘數量
int 實際包裝數量_3 = Math.DivRem(總出貨數量, 預計包裝數量, out int 剩餘數量_3);
if (剩餘數量_3 > 0)
實際包裝數量_3++;
// .NET 6 新增:使用 Tuple 回傳
var (實際包裝數量_4, 剩餘數量_4) = Math.DivRem(總出貨數量, 預計包裝數量);
if (剩餘數量_4 > 0)
實際包裝數量_4++;
Console.WriteLine($"/ 搭配 %: {實際包裝數量_1}");
Console.WriteLine($"Math.Ceiling 無條件進位: {實際包裝數量2}");
Console.WriteLine($"透過 out 回傳剩餘數量: {實際包裝數量_3}");
Console.WriteLine($"使用 Tuple 回傳: {實際包裝數量_4}");
}
}
}
星期四, 5月 21, 2026
[C#] Math.DivRem
以商業邏輯出貨包裝數量為例子來記錄不同計算寫法
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言