我使用此代码只允许输入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;
}
}
答案 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);