前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[C#] 确定一个字符串是否为有效的数字

[C#] 确定一个字符串是否为有效的数字

作者头像
科控物联
发布2022-03-29 17:33:54
7810
发布2022-03-29 17:33:54
举报
文章被收录于专栏:科控自动化

问题

你有一个可能包含一个数字值的字符串,你需要知道该字符串是否包含一个有效的数字。

解决方案

使用任意数字类型的静态TryParse方法。例如,要确定一个字符串是否包含一个double,可使用下列方法。

代码语言:javascript
复制
string str = "12.5";
double result = 0;
if(double.TryParse(str,
   System.Globalization.NumberStyles.Float,
   System.Globalization.NumberFormatInfo.CurrentInfo,
   out result))
  {
  // 是一个double
  }

讨论

本范例展示了如何确定一个字符串是否只包含一个数字值。如果字符串包含一个有效数字,TryParse方法将返回true,而且不会遇到使用Parse方法时的异常。

在实际的上位机编程中会大量使用

代码语言:javascript
复制
      if (!int.TryParse(textBox_delay.Text, out var delay))
      {
        MessageBox.Show("延迟触发的时间输入错误,需要输入整数。");
        return;
      }
      rangeAlarm.Delay = delay;
      rangeAlarm.Conditions = textBox_condition.Text;
      if (checkBox_max.Checked)
      {
        if (!double.TryParse(textBox_maxValue.Text, out var max))
        {
          MessageBox.Show("上限值输入错误,需要输入浮点数。");
          return;
        }
        rangeAlarm.MaxValue = max;
      }
      else
      {
        rangeAlarm.MaxValue = double.NaN;
      }
      if (checkBox_min.Checked)
      {
        if (!double.TryParse(textBox_minValue.Text, out var min))
        {
          MessageBox.Show("下限值输入错误,需要输入浮点数。");
          return;
        }
        rangeAlarm.MinValue = min;
      }
      else
      {
        rangeAlarm.MinValue = double.NaN;
      }
      if (checkBox_maxmax.Checked)
      {
        if (!double.TryParse(textBox_maxmaxValue.Text, out var maxMax))
        {
          MessageBox.Show("极大值输入错误,需要输入浮点数。");
          return;
        }
        rangeAlarm.MaxMaxValue = maxMax;
      }
      else
      {
        rangeAlarm.MaxMaxValue = double.NaN;
      }
      if (checkBox_minmin.Checked)
      {
        if (!double.TryParse(textBox_minminValue.Text, out var minMin))
        {
          MessageBox.Show("极小值输入错误,需要输入浮点数。");
          return;
        }
        rangeAlarm.MinMinValue = minMin;
      }
      else
      {
        rangeAlarm.MinMinValue = double.NaN;
      }
      if (!checkBox_min.Checked && !checkBox_max.Checked && !checkBox_minmin.Checked && !checkBox_maxmax.Checked)
      {
        MessageBox.Show("至少需要选择一个上限值或是下限值。");
      }
      else if (checkBox_max.Checked && checkBox_maxmax.Checked && rangeAlarm.MaxMaxValue < rangeAlarm.MaxValue)
      {
        MessageBox.Show("最大值应该小于极大值!请重新输入。");
      }
      else if (checkBox_min.Checked && checkBox_minmin.Checked && rangeAlarm.MinMinValue > rangeAlarm.MinValue)
      {
        MessageBox.Show("最小值应该大于极大值!请重新输入。");
      }
      else
      {
        base.DialogResult = DialogResult.OK;
      }
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档