当平方根的默认返回类型实际上是双精度值时,如何使用十进制输入执行经济订单数量的平方根计算?
我尝试使用类似问题How can I improve this square root method?中建议的方法,但它与我的问题没有相似的背景。我尝试过强制转换以键入小数,但它似乎不起作用。
public class Sample
{
public int AnnualSalesUnits { get; set; }
public decimal OrderCost { get; set; }
public decimal HoldingRate { get; set; }
public decimal UnitCost { get; set; }
public decimal EconomicOrderQuantity => Math.Sqrt((2 * OrderCost * AnnualSalesUnits) / ((HoldingRate / 100) * UnitCost));
}
有人可以帮我重写此公式以解决小数输入吗?
您可以按以下方式声明您的财产EconomicOrderQuantity:
public decimal EconomicOrderQuantity
{
get
{
decimal numerator = (2 * OrderCost * AnnualSalesUnits * 100);
decimal denominator = (HoldingRate * UnitCost);
decimal fraction = Convert.ToDecimal(numerator / denominator);
double final = Math.Sqrt(Convert.ToDouble(fraction));
return Convert.ToDecimal(final);
}
}
您需要先进行一些转换,以确保允许正确的数据类型来执行所需的计算。
请注意,我还以更线性的方式重写了数学公式,以更好地理解计算流程。