这可能是一个非常新手的问题(好吧,我很确定它是),但是我有一个浮动正在返回,我需要一种快速有效的方法将它变成一个int.
很简单,但我有一个例外.如果float的其余部分不是.0,那么我想增加int.
一些简单的例子:
Float = 98.0,Int = 98
Float = 98.1,Int = 99
Float = 6.6,Int = 7
等
有没有直接的方法从c#(或一般的.NET)中获取双尾数和指数?
我发现这个使用谷歌的例子,但我不确定它会有多强大.二进制表示可以在框架的某些未来版本中进行双重更改吗?
我发现的另一个替代方法是使用System.Decimal而不是double,并使用Decimal.GetBits()方法来提取它们.
有什么建议?
我一直在用Java编写一个网络库的端口,这是我还没有解密和继续前进的最后一行代码.代码行如下:
Float.floatToIntBits(Float);
Run Code Online (Sandbox Code Playgroud)
返回一个整数.
Java 中floatToIntBits的代码
public static int floatToIntBits(float value) {
int result = floatToRawIntBits(value);
// Check for NaN based on values of bit fields, maximum
// exponent and nonzero significand.
if ( ((result & FloatConsts.EXP_BIT_MASK) ==
FloatConsts.EXP_BIT_MASK) &&
(result & FloatConsts.SIGNIF_BIT_MASK) != 0)
result = 0x7fc00000;
return result;
}
Run Code Online (Sandbox Code Playgroud)
我对内存和十六进制值的经验已经不足以将其移植到我自己身上了,更不用说那些让我疯狂的地方的位移.