【问题标题】:How to convert String to One Int如何将 String 转换为 One Int
【发布时间】:2016-11-16 11:38:24
【问题描述】:

C# 中的以下问题(在 VS Community 2015 中工作):

首先,我对 C# 相当陌生,如果这个问题很容易解决,请原谅。

我有一个接触式传感器给我一串数字(长度测量)。我用 SystemPort 方法读取它们,并用子字符串将它们减少到我需要的数字(作为字符串的开头,“SR00002”对我来说没用)。

最后我得到一个字符串,如:“000.3422”或“012.2345”。现在我想将该字符串转换为一个我可以使用的实体 int 变量,这意味着从中减去值等。

Bsp:我想计算 012.234 - 000.3422(或者,而不是 . 但我可以事先更改)

我已经尝试过 Parse 和 ConvertToInt(在遍历字符串时),但最终结果始终是字符串。

    string b = serialPort2.ReadLine();
    string[] b1 = Regex.Split(b, "SR,00,002,");
    string b2 = b1[1].Substring(1);
    foreach (char c in b2)
    {
        Convert.ToInt32(c);
    }                
    textBox2.Text = b2 + b2.GetType();

我知道当 b2 为 int 时,它无法在文本框中打印,但稍后会处理。

当一切都相应地转换时,我将转换外包给它自己的方法 =)

GetType 仅用于测试,如前所述,仅显示 System.String(我不想要)。帮助将不胜感激。我还浏览了搜索功能和谷歌,但找不到任何帮助。我希望任何可能的帮助者有美好的一天,克里斯。

【问题讨论】:

  • 如果要保留小数点,则需要将string 转换为double,``decimal, or float` .. 看看decimal.Parse 和@987654328 @msdn.microsoft.com/en-us/library/…msdn.microsoft.com/en-us/library/9zbda557(v=vs.110).aspx(其他数字类型也可以这样做)
  • b2 是一个字符串,所以如果你这样做 b2.GetType 你会得到结果字符串。你正在转换字符串,但你没有用 ToInt32() 返回的整数声明任何内容;。
  • 感谢您的快速解答。我尝试了十进制。 TryParse。它在一开始就削减了零,但回想起来这实际上可能非常好,因为这样我可以获得传感器读取的信号量,这基本上就是我需要的 =)

标签: c# string int visual-studio-community


【解决方案1】:

使用 int.Parse

int.Parse("123")

【讨论】:

  • 使用:十进制 b3 = decimal.Parse(b1[1]);遗憾的是没有记录小数点并显示一个大数字,但仍然可以使用此解析方法提供的数字,因为它显示传感器的读数数量。
【解决方案2】:

您需要将转换后的值分配给一个新变量或数组,该变量或数组采用int 或您想要的其他数值。

int[] numbers = new int[b1.length];
for(int i = 0; i < b2.length; i++)
    {
        numbers[i]  = Convert.ToInt32(b2[i]);
    }

【讨论】:

  • 感谢您的回答。我会用那个试一试。但是这种方式不会破坏十进制数,而只是给我(在您提供的解决方案中)一个带有数字而不是实心浮点数/小数的数组。我最初可能表达自己有点糟糕,不想要一个 int 而是一个可靠的数字来用 =) 进行计算
  • @Chrisoph-Poser 对不起,我看到你找到了解决方案。是的,您可以根据需要将int 替换为doubledecimalfloat,但在这种情况下我会选择float
猜你喜欢
  • 2010-11-04
  • 2012-11-22
  • 2011-05-29
  • 2011-11-19
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多