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

如何使用c#从二进制文件读取浮点值?,c#,binaryfiles,C#,Binaryfiles,我试图从一个二进制文件中读取浮点值 public static void tmpTest ( ) { string fileName = @"c:\debug\tmp_1.bin"; /* Write */ using ( BinaryWriter bw = new BinaryWriter ( File.Open( fileName, FileMode.Create ) )) { bw.Write

我试图从一个
二进制文件中读取
浮点值

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(因为返回类型是整数)时,请指导我这里做错了什么


非常感谢。

您检查过文档了吗?BinaryReader中有一个用于此的方法

float value = binaryReader.ReadSingle();

你需要读一个单数而不是整数。如果你需要整数,你可以做一个转换(Int)


您使用的是read,而不是ReadSingle。我假设读取转换为int会导致数据转换


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

在读取浮点数时,必须使用适当的读取方法。
ReadSingle()
读取浮点数,
ReadDouble()
读取双精度等。为什么我会被否决??请您在投票之前发表您的评论。非常感谢,我正在寻找ReadFloat()&没想到这会返回float。
binaryReader.ReadSingle();