c#如何将float转换为int

我需要将float转换为int(单精度,32位),如下所示:
'float:2(hex:40000000)to int:1073741824'。 任何想法如何实现?
我在MSDN帮助中寻找它,但没有结果。


如果您针对BitNet转换器不可用的.Net 4版本进行瞄准,或者您想将浮点数转换为32位整数,请使用内存流:

using System;
using System.IO;

namespace Stream
{
  class Program
  {
    static void Main (string [] args)
    {
      float
        f = 1;

      int
        i;

      MemoryStream
        s = new MemoryStream ();

      BinaryWriter
        w = new BinaryWriter (s);

      w.Write (f);

      s.Position = 0;

      BinaryReader
        r = new BinaryReader (s);

      i = r.ReadInt32 ();

      s.Close ();

      Console.WriteLine ("Float " + f + " = int " + i);
    }
  }
}

虽然有点冗长。


float f = ...;
int i = BitConverter.ToInt32(BitConverter.GetBytes(f), 0);

BitConverter.DoubleToInt64Bits,根据这个问题的接受答案。

如果上面的解决方案对你没有好处(由于它是以double / Double而不是float / Single ),那么请参阅David Heffernan的答案。

链接地址: http://www.djcxy.com/p/79225.html

上一篇: c# how to convert float to int

下一篇: Mandelbrot optimization in openmp