繁体   English   中英

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

[英]How to read float values from binary file using c#?

我正在尝试从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_125和val_2为4而不是10(因为返回类型是整数),请指导我在这里做错了什么。

提前谢谢了。

你查过文件了吗? BinaryReader中有一个ReadSingle方法。

float value = binaryReader.ReadSingle();

你需要阅读Single而不是Int。 如果你需要一个int,你可以做一个演员(int)。

MSDN示例

binaryReader.ReadSingle();

您正在使用read而不是ReadSingle。 我认为读入int会导致对数据进行一些转换。

请参阅以下有关ReadReadSingle的文档文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM