Округлить число в C#

inkognitosss

Client
Регистрация
23.03.2015
Сообщения
102
Реакции
9
Баллы
18
Здравствуйте, приведите пример округления числа в C# коде. К примеру что бы 74,43 стало 74. Буду очень благодарен.
 
поищите по поиску на форуме много об этом
 
Код:
Развернуть Свернуть Копировать
var a = Convert.ToDouble(project.Variables["num"].Value)/100*40.6;
return System.Math.Round((project.Variables["num"].Value), 0);
return a.ToString();
Объясните почему не работает код, пожалуйста?
 
Код:
Развернуть Свернуть Копировать
var a = Convert.ToDouble(project.Variables["num"].Value)/100*40.6;
return System.Math.Round((project.Variables["num"].Value), 0);
return a.ToString();
Объясните почему не работает код, пожалуйста?
зачем два return ?
 
  1. var a = Convert.ToDouble(project.Variables["num"].Value)/100*40.6;
Это вы что прописали? не понимаю. И конвертация и деление с умножением, все в одном)
 
var num = 74.43;
var twoDecimalPlaces = Math.Round(num, 0);
return twoDecimalPlaces;
 
  1. var a = Convert.ToDouble(project.Variables["num"].Value)/100*40.6;
Это вы что прописали? не понимаю. И конвертация и деление с умножением, все в одном)
Я узнаю процент от числа. Этот код я нашел на форуме здесь.
 
Извините, я наверно изначально не правильно задал вопрос. Мне нужно с переменной {-Variable.num-} которая хранить значение 74, узнать 15% и полученный результат округлить до ближайшего целого. Извините за тупость:bm:
 
Извините, я наверно изначально не правильно задал вопрос. Мне нужно с переменной {-Variable.num-} которая хранить значение 74, узнать 15% и полученный результат округлить до ближайшего целого. Извините за тупость:bm:
Код:
Развернуть Свернуть Копировать
double number = double.Parse(project.Variables["num"].Value); //num - это ваша переменная
double percent = double.Parse(project.Variables["percent"].Value); //percent - это ваш процент
double result = number/100*percent; //вычисление процента
return System.Math.Round(result,0); // округление
 
Последнее редактирование:
Код:
Развернуть Свернуть Копировать
double number = double.Parse(project.Variables["num"].Value); //num - это ваша переменная
double percent = double.Parse(project.Variables["percent"].Value); //percent - это ваш процент
double result = number/100*percent; //вычисление процента
return System.Math.Round(result,0); // округление
Спасибо вам большое, очень помогли.
 
Незачто:-)
 
  • Спасибо
Реакции: JanCarlo
return System.Math.Round(74.43, 0); А как присвоить числу 74,43 переменную?
 
Пардон за своеобразный некропостинг ))
Воспользовался строкой

return System.Math.Round(double.Parse(твоя переменая), 0);

Но в случае, если значение, например, 122,5, то округляет до 122. Насколько понял по спецификации, в случае "середины" округляет не в большую/меньшую сторону, а в сторону ближайшего четного числа.
Как сделать так, чтобы он округял в таком случае традиционно в большую сторону, т.е., из 122,5 делал 123.
 
Пардон за своеобразный некропостинг ))
Воспользовался строкой

return System.Math.Round(double.Parse(твоя переменая), 0);

Но в случае, если значение, например, 122,5, то округляет до 122. Насколько понял по спецификации, в случае "середины" округляет не в большую/меньшую сторону, а в сторону ближайшего четного числа.
Как сделать так, чтобы он округял в таком случае традиционно в большую сторону, т.е., из 122,5 делал 123.
C#:
Развернуть Свернуть Копировать
return System.Math.Ceiling(double.Parse(твоя переменая), 0); // - в большую
return System.Math.Floor(double.Parse(твоя переменая), 0); // - меньшую
 
  • Спасибо
Реакции: Moonwalker
C#:
Развернуть Свернуть Копировать
return System.Math.Ceiling(double.Parse(твоя переменая), 0); // - в большую
return System.Math.Floor(double.Parse(твоя переменая), 0); // - меньшую

Не хочет. Отдает ошибку:
Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "Ceiling" не принимает "2" аргументов". [Строка: 0; Cтолбец: 8]
 
  1. return System.Math.Ceiling(double.Parse(твоя переменая));
  2. return System.Math.Floor(double.Parse(твоя переменая));
так попробуйте
 
  • Спасибо
Реакции: Moonwalker
  • Спасибо
Реакции: Moonwalker
Не, заработало. Глюк был в другом просто, почему-то если где-то на странице шаблона есть кубик с ошибочным кодом, даже вне структуры, запуск любого кубика выдает ошибку. Забыл просто кривой убрать. Спасибо большое за помощь ))

update:
Хотя, получается, что из 15,4 он делает 16.
А привычно, чтобы из 15,4 делал 15, из 15,6 - 16, и, соответственно, из 15,5 - тоже 16.
Просто Round все делал правильно, но не в случае с 15,5. Его он округлял до четного числа =/
 
Не, заработало. Глюк был в другом просто, почему-то если где-то на странице шаблона есть кубик с ошибочным кодом, даже вне структуры, запуск любого кубика выдает ошибку. Забыл просто кривой убрать. Спасибо большое за помощь ))
:ay:
 
Судя по всему, надо как-то организовать, чтобы System.Math.Round работал через AwayFromZero, а не через ToEven.
Осталось разобраться, как это реализовать )))
 
Не, заработало. Глюк был в другом просто, почему-то если где-то на странице шаблона есть кубик с ошибочным кодом, даже вне структуры, запуск любого кубика выдает ошибку. Забыл просто кривой убрать. Спасибо большое за помощь ))

update:
Хотя, получается, что из 15,4 он делает 16.
А привычно, чтобы из 15,4 делал 15, из 15,6 - 16, и, соответственно, из 15,5 - тоже 16.
Просто Round все делал правильно, но не в случае с 15,5. Его он округлял до четного числа =/
C#:
Развернуть Свернуть Копировать
double myDouble = 2.5;
double result = Math.Round(myDouble, MidpointRounding.AwayFromZero);
return result;
// --- результат 3 --- //
 
  • Спасибо
Реакции: Stat и Moonwalker
C#:
Развернуть Свернуть Копировать
double myDouble = 2.5;
double result = Math.Round(myDouble, MidpointRounding.AwayFromZero);
return result;
// --- результат 3 --- //
Синхронно мы )) Еще раз громадное спасибо )) То, что доктор прописал ))
 
Всех приветствую. Не подскажете где можно такой же кодик найти для округления до сотых?
1.22=1.2
1.13=1.1
1.67=1.7
Буду при многом благодарен Вам товарищи.
 
Всех приветствую. Не подскажете где можно такой же кодик найти для округления до сотых?
1.22=1.2
1.13=1.1
1.67=1.7
Буду при многом благодарен Вам товарищи.
воспользуйся поиском если с этой темы нет подходящего, на форуме много об этом есть
 
Всех приветствую. Не подскажете где можно такой же кодик найти для округления до сотых?
1.22=1.2
1.13=1.1
1.67=1.7
Буду при многом благодарен Вам товарищи.
так надо ?
C#:
Развернуть Свернуть Копировать
double x = 1.67;
x = Math.Round(x, 1);

return x;

ответ 1,7
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)