Округление значений поплавка
У меня есть double
значение, например, 12.256852651
и я хочу отобразить его как 12.257
как число с плавающей точкой, не преобразовывая его в тип строки.
Как я могу сделать это на С#?
Ответы
Ответ 1
Сначала я конвертировал в Decimal
а затем использовал Math.Round
для результата. Это преобразование не является абсолютно необходимым, но я всегда чувствую себя немного неловко, если я округлю до десятичных знаков при использовании двоичных плавающих точек.
Math.Round((Decimal)f, 3, MidpointRounding.AwayFromZero)
Вы также должны изучить выбор MidpointRounding
, поскольку по умолчанию это использует раунд Banker, который не является тем, к чему вы привыкли в школе.
Ответ 2
Если вы хотите отобразить его, это будет строка и то, что вам нужно использовать.
Если вы хотите округлить, чтобы использовать его позже в вычислениях, используйте Math.Round((decimal)myDouble, 3)
.
Если вы не собираетесь использовать его в расчете, но его нужно отобразить, используйте double.ToString("F3")
.