将字符串转换为短 C# 时出现格式异常

Posted

技术标签:

【中文标题】将字符串转换为短 C# 时出现格式异常【英文标题】:Format Exception when converting string to short 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]是什么。 【参考方案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所示的大小和范围来存储值

【讨论】:

以上是关于将字符串转换为短 C# 时出现格式异常的主要内容,如果未能解决你的问题,请参考以下文章

将输入流转换为 JSONArrary 时出现空异常

在 sparksql 中以正确格式将字符串数据转换为十进制时出现问题

将python代码转换为c ++时出现opencvcornerSubPix异常

将字符转换为短

将格式为“yyyy-MM-dd HH:mm:ss.m”的日期字符串转换为“yyyy-MM-dd HH:mm:ss”时出现问题

如何解决利用aspose把word文档转换为pdf文档时出现乱码 C#