float/double Math.Round in C#

float ff = (float)31.15;

double dd = 31.15;

var frst = Math.Round(ff, 1, MidpointRounding.AwayFromZero);

var drst = Math.Round(dd, 1, MidpointRounding.AwayFromZero);

frst: 31.1

drst: 31.2

Can someone explain why?

#c#

2 Likes7.75 GEEK