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

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28
Делаю так и как бы не работает, где ошибка?
Код:
return System.Math.Round(Convert.ToDecimal(project.Variables["price"].Value), 2);
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
554
Баллы
93

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Благодарностей
48
Баллы
28
я читал ту тему и пробовал все коды, сейчас проверил, у меня число через точку, а снипет что я кидал выше работает через запятую, можно как то снипет исправить под точку?(можно конечно регулярками поменять точку на запятую, но мб можно в c# 1 кирпичиком сделать все?)
Сейчас сделал через javascript, есть разница через что делать? c# быстрее работает или все равно?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
project.Variables["price"].Value.Replace(".",",") вместо project.Variables["price"].Value
 
  • Спасибо
Реакции: Buddha и Art4D

rotkiv

Client
Регистрация
27.04.2015
Сообщения
35
Благодарностей
3
Баллы
8
есть число 25.973380895759017
как его округлить до
25.98
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
return System.Math.Round(Convert.ToDouble(project.Variables["var"].Value.Replace(".",",")), 2);
 
  • Спасибо
Реакции: Nekro и dr.reklam
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Всем привет.
Подскажите как округлить дробное число (49.75) в большую сторону до ближайшего целого?
 
Последнее редактирование:

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
554
Баллы
93

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
  • Спасибо
Реакции: in-touch и Сибиряк
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Спасибо котаны :-):ay: выручили!
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Стал тестировать проект в Зеннопостере и на вышеприведенных сниппетах затык.
Выдает ноль в переменную. А вот в РМ все нормально работает.
На входе сниппета переменные как то объявлять надо?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Стал тестировать проект в Зеннопостере и на вышеприведенных сниппетах затык.
Выдает ноль в переменную. А вот в РМ все нормально работает.
На входе сниппета переменные как то объявлять надо?
Странно.
Но если значение лежит в переменной проекта, то так:
C#:
double d = double.Parse(project.Variables["Num"].Value.Replace(".", ","));
return Math.Round(d);
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63

spbalexpiter

Client
Регистрация
24.11.2013
Сообщения
354
Благодарностей
56
Баллы
28
Как округлить в меньшую сторону? например 10,6 в 10
Только надо чтобы работа шла с переменными, а не конкретным числом
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
852
Баллы
93

socsecret.ru

Client
Регистрация
30.09.2017
Сообщения
343
Благодарностей
207
Баллы
43
C#:
return Math.Floor(double.Parse(project.Variables["переменная"].Value.Replace(".", ",")));
А как при этом указать количество знаков после запятой, до которых следует округлить в меньшую сторону? Делаю так:
return Math.Floor(double.Parse(project.Variables["price"].Value.Replace(".", ",")), 2);
Выдаёт ошибку Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "Floor" не принимает "2" аргументов". [Строка: 3; Cтолбец: 21]
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113
А как при этом указать количество знаков после запятой, до которых следует округлить в меньшую сторону? Делаю так:
return Math.Floor(double.Parse(project.Variables["price"].Value.Replace(".", ",")), 2);
Выдаёт ошибку Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "Floor" не принимает "2" аргументов". [Строка: 3; Cтолбец: 21]
попробуй Math.Round
 

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
return System.Math.Round(Convert.ToDouble(project.Variables["var"].Value.Replace(".",",")), 2);
Делая округление таким образом, съедается последний 0. то есть 25.80-23.10 выдаёт результат 2,7. А как сделать что бы результат был 2.70
 

Nakus

Client
Регистрация
28.09.2013
Сообщения
156
Благодарностей
33
Баллы
28
return System.Math.Round(Convert.ToDouble(project.Variables["var"].Value.Replace(".",",")), 2);
Как не заменять точку на запятую или почему макрос "JS" не умеет выполнять простейшие математические операции с цифрами в которых есть запятая?
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Снимаете галочку с чекбокса Не возвращать значение, и указываете в какую переменную сохранить результат
 

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
А как округлить 2,1 что бы получилось 3
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 383
Баллы
113
Последнее редактирование:
  • Спасибо
Реакции: maxim.gutareff

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