字节到字符串“小数点是一个问题”

时间:2011-09-16 06:58:56

标签: c#

此代码是用C#dot net

编写的

我收到以下提及格式的数据 49 46 48 50,相当于十进制格式的1.02 使用这个简单的代码

DATA = Convert.ToByte(serialPort1.ReadByte());

稍后我在缓冲区中添加DATA

buffer[byte_count++] = DATA;   // byte[] buffer = new byte[256];

现在有49 46 48 50 DATA字节值

buffer[1] contains 49
buffer[2] contains 46
buffer[3] contains 48
buffer[4] contains 50

问题是小数点 我可以通过简单的从48减去字节值将49转换为1 但是如何将46转换为小数点并将所有字节保存为字符串

非常感谢任何人都可以解决我的问题 阿什拉夫

3 个答案:

答案 0 :(得分:4)

假设数据是ASCII使用(根据评论更新):

string MyString = Encoding.ASCII.GetString (buffer, 1, 4);

MSDN参考请参阅http://msdn.microsoft.com/de-de/library/system.text.encoding.aspx

答案 1 :(得分:2)

使用Encoding类:

string value = Encoding.ASCII.GetString(buffer, 1, 4);

注意:您已将数据从1开始放在数组中,但数组索引基于零,因此您需要在GetString调用中指定偏移量和长度。

答案 2 :(得分:0)

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] bytes = { 49, 46, 48, 50 };
            //get string
            string str = new string(Encoding.ASCII.GetChars(bytes));
            Console.WriteLine(str);

            //get number
            double d;
            if (double.TryParse(str, out d))
            {
                Console.WriteLine(d);
            }

        }
    }
}