【问题标题】:Format Exception when converting string to short C#将字符串转换为短 C# 时出现格式异常
【发布时间】:2013-10-24 09:48:29
【问题描述】:

我正在尝试在 C# 中将 string 转换为 short。 但我不断收到格式异常是未处理的错误。

short copies = short.Parse(mainForm.quantityBox.Text);
printDocument.PrinterSettings.Copies = copies;

quantityBox 中的值为“1”。

Visual Studio 给我的提示并不是很有帮助 例如:“将字符串转换为日期时间时,在放置每个变量之前解析字符串以获取日期”

【问题讨论】:

  • 常量“mainForm.quantityBox.Text”里面的值是多少
  • 异常时的文本框值是多少?
  • 向我们展示一些示例输入..是否在不同的文化中,有货币符号或分隔符...!
  • 抱歉,已编辑。 @saravanan
  • 尽量确保1中没有空格,如'1'或'1'等。还有,这个异常中的格式化消息[+Inner exception]是什么。

标签: c# string parsing short formatexception


【解决方案1】:

尝试添加 ToString 调用:

short copies = short.Parse(mainForm.quantityBox.Text.ToString());

您收到异常的原因是因为 quantityBox 的值为 1 是一个整数。 short.Parse() 接受一个字符串,因此通过将 quantityBox.Text 的内容转换为 ToString(),不管给它什么值,都会转换成字符串。

【讨论】:

  • “无法将类型字符串隐式转换为短字符串”这就是我得到的。
【解决方案2】:

如果您的输入文本值 id 带有“.”,则会出现格式异常。 (点)在里面。最好替换或处理这个点(.)以避免“Input string was not in a correct format.”。

这会抛出错误:

short val = short.Parse("4.0");                  

这不会抛出任何错误:

short val1 = short.Parse("4");             

【讨论】:

    【解决方案3】:

    short关键字表示整型数据类型,按照如下Blog所示的大小和范围来存储值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 2016-02-21
      相关资源
      最近更新 更多