var x = dr[\"NationalTotal\"].ToString();
gives me 333333333
var xxx = Convert.ToSingle(dr[\"NationalTotal\"].ToString());
This happens because Single does not have enough precision to store your full number.
Single
Double has more precision.
Double