如果它有小数位,则将值增加1?

Mog*_*gli 2 c# rounding

我的情况是,如果

47/15= 3.13333
Run Code Online (Sandbox Code Playgroud)

我想将它转换为4,如果结果有十进制我想将结果增加1,现在我正在这样做

        float res = ((float)(62-15) / 15);
        if (res.ToString().Contains("."))
        {
             string digit=res.ToString().Substring(0, res.ToString().IndexOf('.'));
             int incrementDigit=Convert.ToInt16(k) + 1;


        }
Run Code Online (Sandbox Code Playgroud)

我想知道c#中是否有任何快捷方式或内置函数,以便我可以快速完成此操作而无需实现字符串函数.

非常感谢.

Jon*_*eet 9

你的意思是你想要执行整数除法,但总是四舍五入?我怀疑你想要:

public static int DivideByFifteenRoundingUp(int value) {
    return (value + 14) / 15;
}
Run Code Online (Sandbox Code Playgroud)

这完全避免了使用浮点运算 - 它只允许任何不是15的精确倍数的值被舍入,这是由于整数运算截断为零的方式.

请注意,这并不能为负输入工作-例如,如果你在此-15通过将返回0,你可以如此修正:

public static int DivideByFifteenRoundingUp(int value) {
    return value < 0 ? value / 15 : (value + 14) / 15;
}
Run Code Online (Sandbox Code Playgroud)

  • 我可以两次投票这个答案吗?用于舍入整数的非常好的解决方案. (2认同)

Pio*_*app 5

使用Math.Ceiling引用MSDN:

返回大于或等于指定十进制数的最小整数值.