【问题标题】:C# Converting string to int fails [closed]C#将字符串转换为int失败[关闭]
【发布时间】:2013-12-13 14:18:53
【问题描述】:

我正在做一个小项目,在某个时候需要将string 转换为int

我尝试了以下方法:

//first try
value1 = int.TryParse(value[0].tostring(), out i)

//second
value1 = Convert.ToInt32(value[0].tostring())

//third
value1 = int.Parse(value[0].tostring())

我什至写了自己的转换方法,因为我不知所措。

我尝试转换的值是从MySQL 数据库中查询的。

感谢您的帮助

编辑:

我知道 tryparse 应该有 2 个参数。

我得到的错误是格式异常 输入字符串的格式不正确。

我在所有的尝试中都做到了。

我的测试用例中的值是 2500 请记住,该号码是从数据库接收的 我在使用硬编码值时尝试了上述 sn-ps。而且效果很好。

编辑 2: //http://imgur.com/NSyg2rJ

【问题讨论】:

  • value 的声明是什么? value[0]的内容是什么?
  • 它的ToString,不是tostring,同样int.TryParse 有两个参数。
  • 你遇到了什么错误?
  • int.TryParse(value[0].tostring()) 应该有两个参数dotnetperls.com/int-tryparse
  • 您能否详细说明value[0].ToString() 的值是多少?它可能是一个无法转换为数字的字符串。

标签: c# mysql type-conversion


【解决方案1】:

一个: int.TryParse()的签名不正确:

int result = 0;
bool parsedSuccessfully = Int32.TryParse(value[0].ToString(), out result);
//If successful, result will hold the value.

两个: Convert.ToInt32() 的签名是正确的,减去 .ToString() 方法的大小写。这是失败的,因为valuevalue[0]null,或者它无法将string "NotAnInt" 之类的东西转换为int

三: int.Parse() 的签名是正确的,但失败的原因与两个相同。

【讨论】:

  • 感谢您的反应。我打错了tryparse方法。当然应该有2个参数。至于 values[0] 中的值是 2500,所以这应该不是问题。对吗?
  • 如果 values[0] 是 2500 它应该可以工作。这不适合你吗?
  • 不,它没有……我知道这很奇怪……
  • 我正在失去理智
  • values[0] 的确切类型和值是什么?我假设 2500 是值。您确定输入字符串中没有可能导致失败的非法字符吗?试试specifying the format provider 看看是否仍然失败。
【解决方案2】:

试试这个 -

int value1;
if (Int.TryParse(value[0].ToString(), out value1))
{
    //conversion successful
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 2019-07-16
    • 2013-11-21
    • 2015-02-08
    • 1970-01-01
    相关资源
    最近更新 更多