数学,地板,天花板,小数使用错误

时间:2016-11-14 22:05:52

标签: c# math rounding

下面的代码在某种程度上有效,但没有正确舍入,我的目标是如果一个值= 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();
}

1 个答案:

答案 0 :(得分:0)

这是您想要完成的原始样本。通过使用TDD apporach来写这个:添加测试 - &gt;让它通过。
所以随意重构它

data.table