使用这个语句
第一件商品的运费为 3.99 美元,每件商品的运费为 0.99 美元
附加项目。
提取以下数据来创建运费模型。
public class ShippingCharge {
public decimal basePrice { get; set; }
public int baseCount { get; set; }
public decimal unitPrice { get; set; }
}
使用 OP 中的示例将填充为
//Shipping charges are
shippingCharge = new ShippingCharge() {
// $3.99
basePrice = 3.99M,
//for the first item
baseCount = 1,
// $.99 for each additional item.
unitPrice = 0.99M
};
完成此操作后,使用以下算法来计算给定商品数量的运费。
decimal? CalculateShippingTotal(int itemCount, ShippingCharge charge) {
decimal? total = null;
if (charge != null) {
var basePrice = charge.basePrice;
var baseCount = charge.baseCount;
if (itemCount > baseCount) {
var qtyDifference = itemCount - baseCount;
var additionalCost = qtyDifference * charge.unitPrice;
total = basePrice + additionalCost;
} else {
total = itemCount * basePrice;
}
}
return total;
}
以下单元测试验证了计算总运费的算法的正确性。
[TestMethod]
public void _TotalShipping_For_One_Item() {
//Arrange
var totalQty = 1;
var expected = 3.99M;
//Act
var actual = CalculateShippingTotal(totalQty, shippingCharge);
//Assert
actual.ShouldBeEquivalentTo(expected);
}
[TestMethod]
public void _TotalShipping_For_Two_Items() {
//Arrange
var totalQty = 2;
var expected = 4.98M;
//Act
var actual = CalculateShippingTotal(totalQty, shippingCharge);
//Assert
actual.ShouldBeEquivalentTo(expected);
}
[TestMethod]
public void _TotalShipping_For_Three_Items() {
//Arrange
var totalQty = 3;
var expected = 5.97M;
//Act
var actual = CalculateShippingTotal(totalQty, shippingCharge);
//Assert
actual.ShouldBeEquivalentTo(expected);
}
这个答案具体针对如何根据OP而不是折扣小计计算运费。这应该很简单,您可以通过统计商品、数量和价格来进行计算。完成后,使用商品数量和费用来计算运费。