Created
June 2, 2018 09:08
-
-
Save slavanap/2ab91b44255a307b0683873ec54888b6 to your computer and use it in GitHub Desktop.
Tests for System.Decimal.GetHashCode()
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Globalization; | |
using System.Linq; | |
namespace ConsoleApp1 | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
decimal d0 = 295.50000000000000000000000000m; | |
decimal d1 = 295.5m; | |
Console.WriteLine("{0}", sizeof(decimal)); | |
Console.WriteLine("{0} == {1} : {2}", d0, d1, (d0 == d1)); | |
Console.WriteLine("0x{0:X8} == 0x{1:X8} : {2}", d0.GetHashCode(), d1.GetHashCode() | |
, (d0.GetHashCode() == d1.GetHashCode())); | |
decimal[] arr = { | |
42m, | |
42.0m, | |
42.00m, | |
42.000m, | |
42.0000m, | |
42.00000m, | |
42.000000m, | |
42.0000000m, | |
42.00000000m, | |
42.000000000m, | |
42.0000000000m, | |
42.00000000000m, | |
42.000000000000m, | |
42.0000000000000m, | |
42.00000000000000m, | |
42.000000000000000m, | |
42.0000000000000000m, | |
42.00000000000000000m, | |
42.000000000000000000m, | |
42.0000000000000000000m, | |
42.00000000000000000000m, | |
42.000000000000000000000m, | |
42.0000000000000000000000m, | |
42.00000000000000000000000m, | |
42.000000000000000000000000m, | |
42.0000000000000000000000000m, | |
42.00000000000000000000000000m, | |
42.000000000000000000000000000m, | |
}; | |
foreach (var m in arr) { | |
Console.WriteLine(string.Format(CultureInfo.InvariantCulture, | |
"{0,-32}{1,-20:R}{2:X8}", m, (double)m, m.GetHashCode() | |
)); | |
} | |
Console.WriteLine("Funny consequences:"); | |
var h1 = new HashSet<decimal>(arr); | |
Console.WriteLine(h1.Count); | |
var h2 = new HashSet<double>(arr.Select(m => (double)m)); | |
Console.WriteLine(h2.Count); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment