san*_*art 3 c# floating-point int
我需要将float转换为int(单精度,32位),如:
'float:2(hex:40000000)to int:1073741824'.知道如何实现吗?
我在msdn帮助中寻找它但没有结果.
float f = ...;
int i = BitConverter.ToInt32(BitConverter.GetBytes(f), 0);
Run Code Online (Sandbox Code Playgroud)
Ski*_*izz -1
如果您的目标是低于 .Net 4 且 BitConverter 不可用的版本,或者您想要将浮点数转换为 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然有点啰嗦。
| 归档时间: |
|
| 查看次数: |
5440 次 |
| 最近记录: |