如何检查十进制值的小数点是否不超过2位

本文关键字:小数点 是否 不超过 2位 十进制 何检查 检查 | 更新日期: 2023-09-27 18:13:33

我有一个方法如下:

public bool IsValid(decimal rate)
{
  // 
}

比率可以在0.00和99.99之间,它不应该包含超过2位的小数点,否则会抛出异常。

如何检查一个十进制值的小数点是否不大于2 ?例如:99.123是无效的,而99.12是有效的。

如何检查十进制值的小数点是否不超过2位

如何:

return decimal.Round(rate, 2) == rate;

请注意,对于100.000m,这仍然会返回true,这是与100.000m不同的值,并且如果调用ToString,将显示所有三个十进制数字。

public bool IsValid(decimal rate)
{
    return rate%0.01m == 0;
}

如果rate modulo 0.01为0(如果小数只包含一个或两个小数点),则返回true。小数点后三位以上将返回false(除非第三位是0,在这种情况下EX: 2.220将返回true)。我不确定你打算使用这个,但如果这是一个可接受的失败情况下,这将工作。

public bool IsValid(decimal rate){
    int temp = rate * 100;
    decimal temp2 = temp / (decimal)100;
    return temp2 == rate;
}
Dim s.myscript As String
dim text_value as double = "12.345" 
s = text_value.ToString
' Split string based on dot
words = s.Split(New Char() {"."c})
'if array contain decimal
If words.Length > 1 Then
If (words(1).Length > 2) = True Then
 myscript = "<script language='javascript'>alert('Please enter 2 decimal places only!');</script>"
Page.ClientScript.RegisterStartupScript(Me.GetType(), "onclick", myscript)
Exit Sub
End If
End If