C#验证属性和小数

时间:2016-01-29 00:49:30

标签: c# validation

我正在写一个验证属性:

public class MyAttribute : ValidationAttribute
{
    public override bool IsValid(object aValue)
    {

    }
}

但是我丢失了最低有效数字,因为小数是作为对象传递的。例如:

(object)0.00
0    //I need 0.00
(object)1.00
1
(object)1.23
1.23
(object)1.230
1.23   //I need 1.230

由于我正在根据提供的确切十进制值进行一些验证,即1.230与1.23不同,虽然在数学上是相同的,但就我的目的而言,它们是不同的。

在编写验证属性时是否有办法获取原始十进制值?

2 个答案:

答案 0 :(得分:1)

根据传递的decimal,您无法进行此类验证。小数1.231.230(故事结尾)相同,无法确定差异。

您需要将验证更改为接受string

答案 1 :(得分:0)

如果您将十进制数作为对象传递,则它将保持小数。注意演示二如何将其转换为字符串并测试小数点后的长度。

ngMocks