Округление в большую сторону C#

  • Автор темы Автор темы iblohin
  • Дата начала Дата начала

iblohin

Client
Регистрация
10.09.2015
Сообщения
64
Реакции
2
Баллы
8
Ребят, подскажите по C#

Есть сниппет на c# http://zennolab.com/wiki/ru:knowledgebase:variables , в нем математическое действие:

а / b

нужно, чтобы если число выходит дробное, то оно бы округлялось бы всегда в большую сторону.

Например, 1300 / 210 = 6,19, и его C# сейчас округляет до 6 и возвращает сразу 6, а нужно округлять до 7 и возвращать 7.

Как это сделать?
 
Код:
Развернуть Свернуть Копировать
float a = Convert.ToSingle(project.Variables["a"].Value);
float b = Convert.ToSingle(project.Variables["b"].Value);
return Math.Ceiling(a / b); // округление в большую сторону
 
Последнее редактирование:
Извините пожалуйста, великие гуру с#, ну как же мне просто округлить число 5. 76 в 6 а 5.47 в 5, как же все тяжело, как же мне убрать эту гадость из лога, спасите умоляю:
Выполнение действия CSharp OwnCode Входная строка имела неверный формат.
 
Извините пожалуйста, великие гуру с#, ну как же мне просто округлить число 5. 76 в 6 а 5.47 в 5, как же все тяжело, как же мне убрать эту гадость из лога, спасите умоляю:
Выполнение действия CSharp OwnCode Входная строка имела неверный формат.
Math.Round(a)
где a - число или переменная, которая явл. числом
 
Выполнение действия CSharp OwnCode Входная строка имела неверный формат.
Дробные числа должны быть через запятую, а не точку.
Или записываться в сниппете так:
PHP:
Развернуть Свернуть Копировать
double a = double.Parse(project.Variables["a"].Value.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture);
 
  • Спасибо
Реакции: maxLexx
Великий кот, спасибо, но я глуп очень, что б осознать адекватно написанное тобою, не можешь ли ты тупо скинуть сюда как из переменной , блин, a, в которой содержится 13.82 сделать 14, а 12,05 12, спасибо за
double a = double.Parse(project.Variables["a"].Value.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture);

, извини за наглость( и тупость конечно), сам сниппет, пожалуйста скинь
 
Держите, сер.
PHP:
Развернуть Свернуть Копировать
double a = double.Parse(project.Variables["a"].Value.Replace(",", "."), System.Globalization.CultureInfo.InvariantCulture);
return Math.Round(a);
 

Вложения

  • shab.xmlz
    shab.xmlz
    12,1 KB · Просмотры: 39
  • Спасибо
Реакции: The_vAe
return Math.Round(a);
Знай, кот, что еще один убогий на этом свете, стал счастливым, спасибо, эту хрень забыл дописать, огромное спаибо!!!! Порсто невероятно спас
 
А как округлить в меньшую сторону? В ближайшую то понятно.
 
А как округлить в меньшую сторону? В ближайшую то понятно.
Код:
Развернуть Свернуть Копировать
float a = Convert.ToSingle(project.Variables["a"].Value);
float b = Convert.ToSingle(project.Variables["b"].Value);
return Math.Ground(a / b); // округление в меньшую сторону
 
Код:
Развернуть Свернуть Копировать
float a = Convert.ToSingle(project.Variables["a"].Value);
float b = Convert.ToSingle(project.Variables["b"].Value);
return Math.Ground(a / b); // округление в меньшую сторону
Спасибо мил человек!
 
Так, может конечно и через одно место получилось, проще метод написать в ООП для этого но скруглять в меньшую средствами зенки получилось так.
Код:
Развернуть Свернуть Копировать
decimal a=10;
decimal b= 6;
decimal c=a/b;
string co=c.ToString();
string strPattern=@".*(?=,)";
string strRegexResult = new Regex(strPattern).Match(co).Value;
int coc=int.Parse(strRegexResult);
return strRegexResult;
 
Ребят, подскажите плиз формулу по округлению, а то не соображу никак.
Есть список цен вида:
44.45
123.674
3245.8643
23569.00
Нужно не просто округлить до целого числа, но еще и до десятой части целого числа.
На выходе нужно получить вот это:
50
130
3250
23570
 
Ребят, подскажите плиз формулу по округлению, а то не соображу никак.
Есть список цен вида:
44.45
123.674
3245.8643
23569.00
Нужно не просто округлить до целого числа, но еще и до десятой части целого числа.
На выходе нужно получить вот это:
50
130
3250
23570
разделить на 10, округлить, умножить на 10
 
  • Спасибо
Реакции: Severip
Код:
Развернуть Свернуть Копировать
// Округление чисел
var a = project.Variables["price"].Value;
decimal b = Math.Floor(decimal.Parse(a, System.Globalization.CultureInfo.InvariantCulture));
decimal result = Math.Floor(b/10+1);    // Округление в меньшую сторону: +1 или +0.5
//decimal result = Math.Round(b/10+1);     // Округление в большую сторону: +1 или +0.5
result=result*10; // Умножаем на 10 или 5 соответственно
return result;

Сам спросил, сам ответил. Спасибо! :-)
 
doc, спасибо.
Просто округлить оказалось недостаточно.
 
Так мне же не просто округлить до целого было нужно, а еще и увеличить в большую сторону до десяти.
разделить на 10, округлить через Math.Ceiling, умножить на 10
 
  • Спасибо
Реакции: Severip
разделить на 10, округлить через Math.Ceiling, умножить на 10

Да, так тоже работает. Результат точно такой же на выходе.
Разницы вроде нет или есть? Где-то может быть ошибка?
 
Подскажите пожалуйста.
Есть число: 0,8754238 нужно получить из него такое: 87,54
Как это реализовать можно ?
 
Последнее редактирование:
Подскажите пожалуйста.
Есть число: 0,8754238 нужно получить из него такое: 87,54
Как это реализовать можно ?

Не C#, но все же - можно с помощью JS еще. Приложил шаблон.
1 кубик заменяет запятую на точку для JS.
1 строка в JS - умножает на 100 и убирает лишние цифры в конце (ограничивает знаки после точки до 4-ёх).
2 строка JS - ограничивает знаки после точки до 2-ух.

89127
 

Вложения

  • Спасибо
Реакции: dmitriy1384
Подскажите пожалуйста.
Есть число: 0,8754238 нужно получить из него такое: 87,54
Как это реализовать можно ?

rB5K0Qm.jpg


GA57797.jpg


ImOoL9b.jpg


C#:
Развернуть Свернуть Копировать
return (float)Math.Ceiling(float.Parse(project.Variables["number"].Value.Replace(".",","))*(float)Math.Pow(100, 2)-1)/(float)Math.Pow(10, 2);


если не в одну строку тогда так:

C#:
Развернуть Свернуть Копировать
float number = float.Parse(project.Variables["number"].Value.Replace(".",","));
float res = (float)Math.Ceiling(number*(float)Math.Pow(100, 2)-1);
float result = res/(float)Math.Pow(10, 2);
return result;
 
Последнее редактирование:

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