C# 4.0 将二进制转换为小数?
在C#中,如果我要从二进制文件C# 4.0 将二进制转换为小数?,c#-4.0,binary,C# 4.0,Binary,在C#中,如果我要从二进制文件流中将“3个32位浮点数”作为字节[]读入,我将如何提取3个小数?寻找读取数据的代码,然后提取3个小数。假设该文件仅包含“3个32位浮点数字”。使用位转换.ToSingle: // numbers to read var count = 3; // read file bytes into a buffer var buffer = new byte[sizeof(float) * count]; var stream = File.OpenRead("path
流中将“3个32位浮点数”作为字节[]
读入,我将如何提取3个小数?寻找读取数据的代码,然后提取3个小数。假设该文件仅包含“3个32位浮点数字”。使用位转换.ToSingle
:
// numbers to read
var count = 3;
// read file bytes into a buffer
var buffer = new byte[sizeof(float) * count];
var stream = File.OpenRead("path/to/file");
stream.Read(buffer, 0, buffer.Length);
stream.Dispose();
var numbers = Enumerable
.Range(0, count)
// read 32 bits from buffer and convert to float
.Select(index => BitConverter.ToSingle(buffer, index * sizeof(float)))
.ToArray();
使用BitConvert.ToSingle
:
// numbers to read
var count = 3;
// read file bytes into a buffer
var buffer = new byte[sizeof(float) * count];
var stream = File.OpenRead("path/to/file");
stream.Read(buffer, 0, buffer.Length);
stream.Dispose();
var numbers = Enumerable
.Range(0, count)
// read 32 bits from buffer and convert to float
.Select(index => BitConverter.ToSingle(buffer, index * sizeof(float)))
.ToArray();
你的文件有3个浮点数,每个浮点数都是32位?您想读取这些数字,然后只提取每个数字的小数点,如8.97中的.97?这就是你想要的吗?不,把文件中的三个数字都取出来。你的文件有三个浮点数,每个浮点数都是32位的?您想读取这些数字,然后只提取每个数字的小数点,如8.97中的.97?这就是你想要的吗?不,把文件里的三个数字都取出来。是的,行得通。我试图做新的十进制(data.Take(4))
,但它只对导入的一些值起作用。单身似乎更有效!谢谢,是的,很有效。我试图做新的十进制(data.Take(4))
,但它只对导入的一些值起作用。单身似乎更有效!谢谢