自定义验证来比较两个文本框的浮点值

时间:2008-11-21 11:52:31

标签: c# .net asp.net vb.net

我正在使用自定义验证器来比较两个文本框中的值。这是比较好的价值。但是它说“025”和“25”是不同的......这可以进行浮点比较。

我使用的自定义验证器是

<asp:CompareValidator id="compval" runat="server" ControlToValidate="txtBox1"
                    ErrorMessage="There values are not equal."
                    Enabled="False" ControlToCompare="txtBox2">*</asp:CompareValidator></TD>

如果可能,请告诉我。

4 个答案:

答案 0 :(得分:1)

使用System.Double.Parse(value)将两者转换为浮点数,并比较这些数字。

如果您不希望在值不是有效浮点数时处理异常,也可以使用TryParse。

另见:

答案 1 :(得分:1)

在没有看到验证码的情况下我唯一能想到的是025被解释为八进制数(在C中,在整数之前将零置于基数8中)。然后025将在基数10中为21,而你的两个数字将不相同。

但是,我不确定你是怎么想出来的。我测试了一些Parse()函数,它们都将字符串“025”转换为base-10 25。

答案 2 :(得分:1)

我想以下是你需要的(问题可以说得更清楚)

<asp:CompareValidator ID="cv1" runat="server" ControlToCompare="txt1" ControlToValidate="txt2" Operator="Equal" Type="Integer" ErrorMessage="integers in txt1 and txt2 are not equal" />

答案 3 :(得分:0)

使用类型为int的比较验证器?