var data = new decimal[] {
// 123456789012345678901234567890
1.0m,
1.00m,
1.000m,
1.0000m,
1.00000m,
1.000000m,
1.0000000m,
1.00000000m,
1.000000000m,
1.0000000000m,
1.00000000000m,
1.000000000000m,
1.0000000000000m,
1.00000000000000m,
1.000000000000000m,
1.0000000000000000m,
1.00000000000000000m,
1.000000000000000000m,
1.0000000000000000000m,
1.00000000000000000000m,
1.000000000000000000000m,
1.0000000000000000000000m,
1.00000000000000000000000m,
1.000000000000000000000000m,
1.0000000000000000000000000m,
1.00000000000000000000000000m,
1.000000000000000000000000000m,
1.0000000000000000000000000000m,
1.00000000000000000000000000000m,
1.000000000000000000000000000000m,
1.0000000000000000000000000000000m,
1.00000000000000000000000000000000m,
1.000000000000000000000000000000000m,
1.0000000000000000000000000000000000m,
};
for (int i = 0; i < 1000; ++i)
{
var d0 = i * data[0];
var d0Hash = d0.GetHashCode();
foreach (var d in data)
{
var value = i * d;
var hash = value.GetHashCode();
Console.WriteLine("{0};{1};{2};{3};{4};{5}", d0, value, (d0 == value), d0Hash, hash, d0Hash == hash);
}
}
// for i = 1000
1000,0;1000,0;True;1083129856;1083129856;True
1000,0;1000,00;True;1083129856;1083129856;True
1000,0;1000,000;True;1083129856;1083129856;True
1000,0;1000,0000;True;1083129856;1083129856;True
1000,0;1000,00000;True;1083129856;1083129856;True
1000,0;1000,000000;True;1083129856;1083129856;True
1000,0;1000,0000000;True;1083129856;1083129856;True
1000,0;1000,00000000;True;1083129856;1083129856;True
1000,0;1000,000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,0000000000000000000000000;True;1083129856;-1083129841;False
// for i = 1000
1000,0;1000,0;True;1083129856;1083129856;True
1000,0;1000,00;True;1083129856;1083129856;True
1000,0;1000,000;True;1083129856;1083129856;True
1000,0;1000,0000;True;1083129856;1083129856;True
1000,0;1000,00000;True;1083129856;1083129856;True
1000,0;1000,000000;True;1083129856;1083129856;True
1000,0;1000,0000000;True;1083129856;1083129856;True
1000,0;1000,00000000;True;1083129856;1083129856;True
1000,0;1000,000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000000000;True;1083129856;-1083129841;False
1000,0;1000,000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,00000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,000000000000000000000000;True;1083129856;1083129856;True
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False
1000,0;1000,0000000000000000000000000;True;1083129856;1083129856;False