如何在C#.net中使用向下舍入为-1,就像我们在excel中使用的那样?
在excel中我这样做:
ROUND-DOWN(44355/10,-1);
输出:4430
我试过了:Math.Round(44355/10,-1)
但是这给了我和错误:
圆形必须在0-15之间
答案 0 :(得分:2)
基本上Math.Round不允许这样做,您可以使用自己的实现,但请参阅this solution
答案 1 :(得分:0)
如果您明确需要与Excel ROUND-DOWN功能类似的功能,请尝试类似这样的内容......
public static float RoundDown(float value, int numDigits)
{
if (numDigits > 0)
return (float)Math.Round(value, numDigits);
var iValue = (int)value;
for (int i = numDigits, x = 10; i < 0; i++, x *= 10)
iValue -= iValue % x;
return iValue;
}
这会产生以下结果:
RoundDown(5.82f, 0); // 5
RoundDown(-5.82f, 0); // 5
RoundDown(5.82f, 1); // 5.8
RoundDown(-5.82f, 1); // -5.8
RoundDown(123.456f, -1); // 120
RoundDown(-123.456f, -1); // -120
RoundDown(123.456f, -2); // 100
RoundDown(-123.456f, -2); // -100
RoundDown(999.999f, -3); // 0
RoundDown(-999.999f, -3); // 0