Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不丢失小数点的情况下将float转换为int?就像它一样';它显示在内存中_C#_.net - Fatal编程技术网

C# 如何在不丢失小数点的情况下将float转换为int?就像它一样';它显示在内存中

C# 如何在不丢失小数点的情况下将float转换为int?就像它一样';它显示在内存中,c#,.net,C#,.net,让我们假设float f=4.4 如果我在某个内存读取器中浏览f,并假设f是int,则得到值10829693 我不想像(int)f 当你说“类似于1151354611”时,有没有办法假设f为int并在C#中得到该值(1082969293)?你的意思是真的1082969293?是的,李已经正确回答了,并将在2分钟内被接受。当你说“类似于1151354611”时,你的意思是真的1082969293?是的,Lee的回答已经正确,将在2分钟内被接受。更快的方法是int i=BitConverter.To

让我们假设
float f=4.4

如果我在某个内存读取器中浏览
f
,并假设
f
int
,则得到值10829693

我不想像
(int)f


当你说“类似于1151354611”时,有没有办法假设f为int并在C#中得到该值(1082969293)?你的意思是真的
1082969293
?是的,李已经正确回答了,并将在2分钟内被接受。当你说“类似于1151354611”时,你的意思是真的
1082969293
?是的,Lee的回答已经正确,将在2分钟内被接受。更快的方法是
int i=BitConverter.ToInt32(BitConverter.GetBytes(f),0)选择哪一个对你和你的同事来说更容易阅读。@Tory我认为只是打字更快。我怀疑编译器优化了这个变量。这就是说,我稍微喜欢更简洁的方式,因为
var bytes
实际上并不比
GetBytes
@TimGoodman传达任何额外的信息,抖动可能会将其编译掉,但即使优化打开,编译器仍会生成局部变量并使用stloc.#和ldloc.#。但是,是的,这只是低级的迂腐。一种更快的方法(丢失解释变量)是
inti=BitConverter.ToInt32(BitConverter.GetBytes(f),0)选择哪一个对你和你的同事来说更容易阅读。@Tory我认为只是打字更快。我怀疑编译器优化了这个变量。这就是说,我稍微喜欢更简洁的方式,因为
var bytes
实际上并不比
GetBytes
@TimGoodman传达任何额外的信息,抖动可能会将其编译掉,但即使优化打开,编译器仍会生成局部变量并使用stloc.#和ldloc.#。但是,是的,那只是低级的迂腐。
float f = 4.4f;
var bytes = BitConverter.GetBytes(f);
int i = BitConverter.ToInt32(bytes, 0);