The*_*ght 3 c# asp.net validation decimal
我有一个方法如下:
public bool IsValid(decimal rate)
{
//
}
Run Code Online (Sandbox Code Playgroud)
速率可以在0.00到99.99之间,它不应该包含超过2个小数位,否则它应该抛出异常.
如何检查十进制值是否不超过2个小数点?例如99.123无效而99.12无效.
Jon*_*eet 13
怎么样:
return decimal.Round(rate, 2) == rate;
Run Code Online (Sandbox Code Playgroud)
请注意,对于100.000m这仍然会返回true,这是一个与100.00m不同的值,如果您调用,它将显示所有三位小数ToString.
public bool IsValid(decimal rate)
{
return rate%0.01m == 0;
}
Run Code Online (Sandbox Code Playgroud)
如果rate modulo .01为0,则返回true(如果小数是仅包含一个或两个小数位的数字,则总是如此).三个小数位更多将返回false(除非小数点后三位是0,EX:2.220在这种情况下将返回true).我不确定你打算使用它的是什么,但如果这是一个可接受的失败案例,这将有效.