仅允许输入2位小数(C#+ WindowsPhone)

时间:2012-03-12 15:20:11

标签: c# windows-phone-7 keydown

我使用此代码只允许输入1个小数点。它运行正常。但是我如何能够在小数点后只输入2个数字呢?

C#

 private void txtPrecio_KeyDown(object sender, KeyEventArgs e)
    {
        TextBox txt1 = (TextBox)sender;

        if (txt1.Text.Contains(".") && e.PlatformKeyCode == 190)
        {
            e.Handled = true;
        }           
    }

3 个答案:

答案 0 :(得分:2)

或许this或其他一些基于Silverlight的屏蔽编辑可以帮助您以更清洁的方式解决问题?

希望这有帮助。

答案 1 :(得分:1)

只检查最后一个字符是否为数字值,倒数第二个字符是数字值,之前的字符是点/句点。

或者如果你想使用正则表达式*,比如

if (Regex.IsMatch(".[0-9]{2}$", txt1.Text)
{
    e.Handled = true;
}

* - 这个正则表达式是从内存中完成的,但它正在寻找(意图)查看文本是否以小数位结尾,然后是2个数字字符。

答案 2 :(得分:1)

为什么不格式化结果:

double e = double.Parse(text);
string nText = string.Format("{0:0.##}", e);
e = double.Parse(nText);