【发布时间】: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, orfloat` .. 看看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