BALBINDER4u Ответов: 2

Как использовать метод math.round() с переменной


Всем Привет

А я использую математику.Метод Round () с переменной в c#.
я.е

Математика.Метод Round () с переменной

десятичная дробь trm2 = 22,9866;
trm2 = математика.Круглый (trm2, 2);
тогда выход равен 22.98 (нормально)

но когда

десятичная дробь trm2 = 22.00;
trm2 = математика.Круглый (trm2, 2);
тогда выход 22.00

но я хочу 22 (без нуля)

Как ?
плз помогите

Что я уже пробовал:

Всем Привет

А я использую математику.Метод Round () с переменной в c#.
я.е

Математика.Метод Round () с переменной

десятичная дробь trm2 = 22,9866;
trm2 = математика.Круглый (trm2, 2);
тогда выход равен 22.98 (нормально)

но когда

десятичная дробь trm2 = 22.00;
trm2 = математика.Круглый (trm2, 2);
тогда выход 22.00

но я хочу 22 (без нуля)

Как ?
плз помогите

Philippe Mori

- Не пиши один и тот же текст дважды.
- Форматируйте и отступайте ваш код (используйте блок кода).
- Попробуйте свой код: 22.9866 округлится до 22.99.

Если вы не приложите усилий к своему вопросу, не ожидайте большой помощи или хорошей оценки вашего вопроса.

2 Ответов

Рейтинг:
1

OriginalGriff

Десятичное значение всегда имеет "цифры справа от десятичной точки", если только вы специально не скажете ему этого не делать, когда преобразуете его в строку для представления пользователю.
Вы не можете сказать десятичному (или плавающему, или двойному) значению "у вас нет ничего справа от десятичной точки", потому что у них нет никакой концепции форматирования - это просто числа!
Если вы не хотите, чтобы числа показывали дробную часть, то укажите ее при преобразовании, указав для нее формат "#0" :

decimal d1 = 22.00M;
Console.WriteLine("{0}:{1} - {2:0#}", d1, d1.ToString("#0"), d1);/pre>
<pre lang="text">22.00:22 - 22

Обратите внимание, что это также будет округляться до 22.9866:
decimal d1 = 22.9866M;
Console.WriteLine("{0}:{1} - {2:0#}", d1, d1.ToString("#0"), d1);

22.9866:23 - 23


Рейтинг:
0

Karthik_Mahalingam

попробовать это

 int decimalPlace = (trm2 % 1) == 0 ? 0 : 2;
trm2 = Math.Round(trm2, decimalPlace);