Операция, которую вы ищете: Math.Round
:
Single unrounded = (Single)dr["num1"]; // change if the DB type is not a single
double rounded = Math.Round(unrounded, 3);
Single roundedSingle = (Single)rounded;
Math.Round
возвращает двойное значение при использовании с одинарным, поэтому необходимо преобразовать в одиночное (float)) потом.Примечание: вы можете рассмотреть возможность использования decimal
s в качестве альтернативы, если проблема заключается в десятичной точности.
Обратите внимание, что эта перегрузка Math.Round
выполняет Банковское округление , то есть 0.0005
становится 0.000
, но 0.0015
становится 0.002
.Если вы хотите использовать другой тип округления, вместо этого используйте перегрузку Math.Round (Double, Int32, MidpointRounding) .