using System.Collections.Generic;
public static void Main()
double roundedNumber = Math.Round(number);
Console.WriteLine(roundedNumber);
Console.WriteLine((fee ?? 0) == 0 ? (ushort)0 : (ushort)((fee??0) - 4));
private static void CalculateRebate()
sbyte PayWay = 9 , CardSettlementType = 0;
ushort Fee = 38, FeeChannel = 23, FeeLevel1 = 23, FeeLevel2 = 23, FeeLevel3 = 25, FeeLevel4 = 0, FeeLevel5 = 0;
long Amount = 13890, FeeAmount = Fee*Amount, FeeAmountChannel= FeeChannel * Amount;
var totalFeeRegion = Fee - FeeChannel;
var totalRebate = FeeAmount - FeeAmountChannel;
if (PayWay == 12 && CardSettlementType == 1)
totalRebate = totalFeeRegion * Amount;
var feeDic = new List<KeyValuePair<int, int>>
new KeyValuePair<int, int>(0, FeeChannel),
new KeyValuePair<int, int>(1, FeeLevel1),
new KeyValuePair<int, int>(2, FeeLevel2),
new KeyValuePair<int, int>(3, FeeLevel3),
new KeyValuePair<int, int>(4, FeeLevel4),
new KeyValuePair<int, int>(5, FeeLevel5),
}.Where(w => w.Value != 0).OrderBy(o => o.Key).ToList();
feeDic.Add(new KeyValuePair<int, int>(6, Fee));
var rebateDic = new Dictionary<int, long>();
Console.WriteLine($"feeDic.Count:{feeDic.Count}");
for (int i = 0; i < feeDic.Count - 1; i++)
Console.WriteLine($"feeDic[i].Key:{feeDic[i].Key},feeDic[i + 1].Value:{feeDic[i + 1].Value},i:{i},feeDic[i].Value:{feeDic[i].Value}");
rebateDic.Add(feeDic[i].Key, (long)Math.Round((double)(feeDic[i + 1].Value - feeDic[i].Value) * totalRebate / totalFeeRegion));
var RebateChannel = rebateDic.FirstOrDefault(f => f.Key == 0).Value;
var RebateLevel1 = rebateDic.FirstOrDefault(f => f.Key == 1).Value;
var RebateLevel2 = rebateDic.FirstOrDefault(f => f.Key == 2).Value;
var RebateLevel3 = rebateDic.FirstOrDefault(f => f.Key == 3).Value;
var RebateLevel4 = rebateDic.FirstOrDefault(f => f.Key == 4).Value;
var RebateLevel5 = rebateDic.FirstOrDefault(f => f.Key == 5).Value;
Console.WriteLine($"FeeAmount:{FeeAmount},FeeAmountChannel:{FeeAmountChannel}");
Console.WriteLine($"RebateChannel:{RebateChannel},RebateLevel1:{RebateLevel1},RebateLevel2:{RebateLevel2},RebateLevel3:{RebateLevel3},RebateLevel4:{RebateLevel4},RebateLevel5:{RebateLevel5}");