I assign 2097151.3 to the float variable and the application prints only the integer part. Possible bug?
public static void Main(string[] args)
{
    float foo = 2097151.3F;
    Console.WriteLine(foo); // prints 2097151
    Console.ReadKey();
}
I'm running a .NET Core console application.

 
     
    