Круглый двойной в двух десятичных разрядах в C #? - PullRequest
221 голосов
/ 01 марта 2010

Я хочу округлить двойное значение в два знака после запятой в c #, как я могу это сделать?

double inputValue = 48.485;

после округления вверх

inputValue = 48.49;

Связанный: c # - Как округлить десятичное значение до 2 десятичных знаков (для вывода на страницу)

Ответы [ 6 ]

414 голосов
/ 01 марта 2010

Это работает:

inputValue = Math.Round(inputValue, 2);
92 голосов
/ 01 марта 2010
Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)
24 голосов
/ 29 сентября 2011

Вы должны использовать

inputvalue=Math.Round(inputValue, 2, MidpointRounding.AwayFromZero)

Math.Round

Math.Round округляет значение с плавающей запятой двойной точности до указанное количество дробных цифр.

MidpointRounding

Указывает, как математические методы округления должны обрабатывать число это на полпути между двумя числами.

В основном, функция выше примет ваше введенное значение и округлит его до 2 (или любого числа, которое вы укажете) десятичных разрядов. При MidpointRounding.AwayFromZero, когда число находится на полпути между двумя другими, оно округляется до ближайшего числа , которое отличается от нуля. Существует также другая опция, которую можно использовать, которая округляет до ближайшего четного числа .

18 голосов
/ 01 марта 2010

Использование Math.Round

value = Math.Round(48.485, 2);
16 голосов
/ 16 ноября 2015

Другой простой способ - использовать ToString с параметром. Пример:

float d = 54.9700F;    
string s = d.ToString("N2");
Console.WriteLine(s);

Результат:

54.97
8 голосов
/ 17 октября 2015

вы можете попробовать один из ниже. Есть много способов для этого.

1. 
 value=Math.Round(123.4567, 2, MidpointRounding.AwayFromZero) //"123.46"
2.
 inputvalue=Math.Round(123.4567, 2)  //"123.46"
3. 
 String.Format("{0:0.00}", 123.4567);      // "123.46"
4. 
string.Format("{0:F2}", 123.456789);     //123.46
string.Format("{0:F3}", 123.456789);     //123.457
string.Format("{0:F4}", 123.456789);     //123.4568
...