Подскажите снипет округления простых чисел в бол. сторону

seodamage

Client
Регистрация
08.09.2014
Сообщения
224
Благодарностей
67
Баллы
28
Привет, пользовался поиском пробовал варианты но ничего не подходит.
Я паршу вк апи беру оттуда количество человек в группе:

выходят числа:
13821
18559
31888

и т.д.

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

14000
19000
32000

Пробовал по разному но ничего не выходит.

бывает что в группе 1 человек или чуть меньше 1000 тогда надо чтобы в снипете тоже округлялось до 1000
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Привет, пользовался поиском пробовал варианты но ничего не подходит.
Я паршу вк апи беру оттуда количество человек в группе:

выходят числа:
13821
18559
31888

и т.д.

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

14000
19000
32000

Пробовал по разному но ничего не выходит.

бывает что в группе 1 человек или чуть меньше 1000 тогда надо чтобы в снипете тоже округлялось до 1000
снипета такого у меня нет, но можно сотворить такое на небольшой кучке кубиков..
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
округление заключается в том, чтобы поделить число на тыщу и умножить на тыщу. Если ноль - добавить тыщу
 

seodamage

Client
Регистрация
08.09.2014
Сообщения
224
Благодарностей
67
Баллы
28
К сожалению с си не знаком, нашёл какой то сервис где вроде бы все работает, поидее можно будет на гет/пост сделать 2 кубика, но лучше бы конечно через снипет если бы кто подсказал как сделать
 

seodamage

Client
Регистрация
08.09.2014
Сообщения
224
Благодарностей
67
Баллы
28
Сейчас сделано через костыли, буду признателен за помощь со сниппетом

del.png
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
int num = int.Parse(project.Variables["переменнная"].Value);
return (num/1000+1)*1000;

может так работает
 

seodamage

Client
Регистрация
08.09.2014
Сообщения
224
Благодарностей
67
Баллы
28
Большое спасибо - сработало!
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Большое спасибо - сработало!
учти, он будет округлять ровные тысячи в большую сторону. 13000 округлит до 14000. Если это вызывает осложнение - нужен другой сниппет
 
  • Спасибо
Реакции: seodamage

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
C#:
double num = double.Parse(project.Variables["Num"].Value);
return Math.Ceiling(num / 1000) * 1000; // округлить число в большую сторону
//return Math.Round(num / 1000) * 1000; // округлить число до ближайшего целого
 

seodamage

Client
Регистрация
08.09.2014
Сообщения
224
Благодарностей
67
Баллы
28
Спасибо оба сниппета работают буду тестировать, на ошибки. Вам обоим жирнейший плюс в карму :bp:
 

mihanat

Client
Регистрация
26.02.2017
Сообщения
38
Благодарностей
18
Баллы
8
Подскажите как округлить 3,12 в 3, а 4, 76 в 5, спасибо
 

pasha711

Client
Регистрация
26.05.2014
Сообщения
132
Благодарностей
27
Баллы
28

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18
Народ всем привет!
У меня запара какая-то непонятная.
Выражение return Math.Round(325.6389, 2); нормально срабатывает, и всё округляет, а return Math.Round(project.Variables["znachenie"].Value, 2); не работает. Вот такую ошибку выдает https://yadi.sk/i/8Pz6rD4m3Spkmy
Как решить задачу подскажите пожалуйста.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
  • Спасибо
Реакции: Botlab.su и Sergodjan

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
C#:
double znachenie = double.Parse(project.Variables["znachenie"].Value.Replace(".", ","));
return Math.Round(znachenie, 2);
 
  • Спасибо
Реакции: Botlab.su и Sergodjan

Botlab.su

Client
Регистрация
06.04.2015
Сообщения
145
Благодарностей
21
Баллы
18

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
вообще можно просто стринг использовать в таком случае, после проверил но уже не стал выкладывать
 

Hannes

Client
Регистрация
03.02.2016
Сообщения
527
Благодарностей
273
Баллы
63
На будущее для себя и коллег округление через кубик Javascript.

Округление в меньшую сторону:
Код:
Math.floor(переменная);
Округление в большую сторону:
Код:
Math.ceil(переменная);
 
  • Спасибо
Реакции: tekitt и sergej_g
Регистрация
09.11.2015
Сообщения
264
Благодарностей
10
Баллы
18
На будущее для себя и коллег округление через кубик Javascript.

Округление в меньшую сторону:
Код:
Math.floor(переменная);
Округление в большую сторону:
Код:
Math.ceil(переменная);
Дружище скажи а есть такая же но которая до десятых округляет?
1.22=1.2
1.13=1.1
1.67=1.7
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Регистрация
09.11.2015
Сообщения
264
Благодарностей
10
Баллы
18
  • Спасибо
Реакции: Sergodjan

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