C#でdouble
という値があるとします。GetHashCode()は、同じ倍精度結果を別の整数で取得できますか?
GetHashCode()
が異なるコンピュータ/ウィンドウ/アーキテクチャ上でdouble
の異なる整数値を返す可能性はありますか?
public unsafe override int GetHashCode() {
double d = m_value;
if (d == 0) {
// Ensure that 0 and -0 have the same hash code
return 0;
}
long value = *(long*)(&d);
return unchecked((int)value)^((int)(value >> 32));
}
可能であれば、何ですか? –
GetHashCodeの結果は実装固有であるため、原則として「はい、なぜですか? – Pavel