鉴于
public long A()
{
double a = 3.1415296;
return ??
}
double b = (??) A();
是否可以投射,但不能转换,a
这样它会被隐藏在一个长的?
答案 0 :(得分:6)
是的,您可以使用位转换器执行此操作:
public long A()
{
double a = 3.1415296;
return BitConverter.DoubleToInt64Bits(a);
}
答案 1 :(得分:1)
是的,您可以将double
的实际代表放在long
变量中,然后将其取回:
double a = 3.1415296;
long b = BitConverter.ToInt64(BitConverter.GetBytes(a), 0);
double c = BitConverter.ToDouble(BitConverter.GetBytes(b), 0);
例如,您可以将singe
放在int
中。