感知textBox中的小数

时间:2011-04-30 21:44:06

标签: c# visual-studio visual-studio-2010 windows-phone-7 decimal

我正在为Windows Phone开发一种计算器。

它不需要使用小数。 (谁需要.39的砖)

如何检测字符串或textBox中是否有小数?

编辑:谢谢,@ Bala R和@Afnan。但我所追求的是过滤掉字母的东西。我的回答如下。

4 个答案:

答案 0 :(得分:2)

修改Bala R代码

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text.Contains(".") || textBox1.Text.Contains(","))
                textBox1.Text = textBox1.Text.Replace(".", string.Empty).Replace(",", string.Empty);
        }

这将删除在写入输入时输入的无效字符

答案 1 :(得分:1)

你可以用它来查看字符串

中是否有“句号”
 bool hasDecimal = textBox.Text.Contains(".") 

但是十进制值不止一个时期。

答案 2 :(得分:1)

我认为您需要检查该值是否为有效的十进制值。

使用TryParse方法:

decimal value;

string textValue = textBox.Text;
bool isDecimal = decimal.TryParse(textValue, out value)

答案 3 :(得分:0)

以下是我发现的最佳作品:

            bool bNeedToUpdate = false;

StringBuilder szNumbersOnly = new StringBuilder();

TextBox textSource = sender as TextBox;

if (null == textSource)

{{ 1}}

return;

foreach (char ch in textSource.Text)

{

{{1} }

if (("0123456789").Contains(ch.ToString()))

{

szNumbersOnly.Append(ch);

} < / p>

else

{

bNeedToUpdate = true;

}

}

if (bNeedToUpdate)

{

textSource.Text = szNumbersOnly.ToString();

< p>

我从论坛主持人Erin Fleck那里回答了这个问题,他回答了this类似的问题。

@Afnan得到了绿色支票,因为他/她/它回答了我原来的问题。