Math,Floor,Ceiling, decimal What to use 错误

Math,Floor,Ceiling, decimal What to use error

下面的代码有些工作但没有正确四舍五入,我的目标是如果值 = 1.5 向下舍入,如果 1.51 向上舍入。

谢谢

if (!String.IsNullOrEmpty(tbSnp_Uld.Text) && !string.IsNullOrEmpty(cbSnp_Uld.Text))
{
    double d_tbSnp_Uld = Convert.ToDouble(tbSnp_Uld.Text);
    double d_cbSnp_Uld = Convert.ToDouble(cbSnp_Uld.Text);
    double result1 = Math.Ceiling(d_tbSnp_Uld / d_cbSnp_Uld);
    double d = 0; 
    int floored = (int)Math.Floor(d); 
    int ceiled = (int)Math.Ceiling(d); 
    double epsilon = 0;
    int lessThan = floored - Convert.ToInt32(Math.Abs(d - floored) < epsilon);
    int moreThan = ceiled + Convert.ToInt32(Math.Abs(d - ceiled) < epsilon);
    tbTrailer_Needed.Text = result1.ToString();
}

这里是您尝试完成的原始示例。使用 TDD 方法编写此代码:添加测试 -> 使其通过。
所以请随意重构它

public static int CustomRound(double value)
{
    int sign = Math.Sign(value);
    double absValue = Math.Abs(value);
    int absResult =  (int)Math.Round(absValue - 0.01, 0, MidpointRounding.AwayFromZero);
    return absResult * sign;
}