如何使用c#从二进制文件中读取浮点值

本文关键字:读取 二进制文件 何使用 | 更新日期: 2023-09-27 18:16:51

我正试图从binary文件中读取float值,

public static void tmpTest ( )
    {
        string fileName = @"c:'debug'tmp_1.bin";
        /* Write */
        using ( BinaryWriter bw = new BinaryWriter ( File.Open( fileName, FileMode.Create ) ))
        {
            bw.Write ( 10.001f );
            bw.Write ( 10.002f );
        }
        /* Read */
        using ( BinaryReader br = new BinaryReader ( File.Open ( fileName, FileMode.Open ) ) )
        {
            int val_1 = br.Read (); // Output : 25
            int val_2 = br.Read (); // Output : 4
        }
    }

我知道我在Read部分缺少一些东西,当我读取这些值时,我得到val_1 25 &val_2作为 4 而不是10(因为返回类型是整数),请指导我在这里做错了什么。

如何使用c#从二进制文件中读取浮点值

你看过文档了吗?在BinaryReader中有一个ReadSingle方法。

float value = binaryReader.ReadSingle();

你需要读的是Single而不是Int。如果需要int类型,可以进行强制类型转换(int)。

MSDN例子

binaryReader.ReadSingle();

您正在使用read,而不是ReadSingle。我认为读强制转换成int类型会导致数据发生某种转换。

请参阅以下关于Read和ReadSingle的文档文章