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

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

Art4D

Client
Регистрация
22.08.2014
Сообщения
276
Реакции
48
Баллы
28
Делаю так и как бы не работает, где ошибка?
Код:
Развернуть Свернуть Копировать
return System.Math.Round(Convert.ToDecimal(project.Variables["price"].Value), 2);
 
я читал ту тему и пробовал все коды, сейчас проверил, у меня число через точку, а снипет что я кидал выше работает через запятую, можно как то снипет исправить под точку?(можно конечно регулярками поменять точку на запятую, но мб можно в c# 1 кирпичиком сделать все?)
Сейчас сделал через javascript, есть разница через что делать? c# быстрее работает или все равно?
 
project.Variables["price"].Value.Replace(".",",") вместо project.Variables["price"].Value
 
  • Оценить
Реакции: Buddha и Art4D
есть число 25.973380895759017
как его округлить до
25.98
 
  • Оценить
Реакции: in-touch и Сибиряк
Стал тестировать проект в Зеннопостере и на вышеприведенных сниппетах затык.
Выдает ноль в переменную. А вот в РМ все нормально работает.
На входе сниппета переменные как то объявлять надо?
 
Стал тестировать проект в Зеннопостере и на вышеприведенных сниппетах затык.
Выдает ноль в переменную. А вот в РМ все нормально работает.
На входе сниппета переменные как то объявлять надо?
Странно.
Но если значение лежит в переменной проекта, то так:
C#:
Развернуть Свернуть Копировать
double d = double.Parse(project.Variables["Num"].Value.Replace(".", ","));
return Math.Round(d);
 
Странно.
Но если значение лежит в переменной проекта, то так:
C#:
Развернуть Свернуть Копировать
double d = double.Parse(project.Variables["Num"].Value.Replace(".", ","));
return Math.Round(d);

Спасибо ))) В постере заработало)))
 
Как округлить в меньшую сторону? например 10,6 в 10
Только надо чтобы работа шла с переменными, а не конкретным числом
 
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]
 
А как при этом указать количество знаков после запятой, до которых следует округлить в меньшую сторону? Делаю так:
return Math.Floor(double.Parse(project.Variables["price"].Value.Replace(".", ",")), 2);
Выдаёт ошибку Компиляция кода Ошибка в действии "CS1501" "Ни одна из перегрузок метода "Floor" не принимает "2" аргументов". [Строка: 3; Cтолбец: 21]
попробуй Math.Round
 
return System.Math.Round(Convert.ToDouble(project.Variables["var"].Value.Replace(".",",")), 2);
Делая округление таким образом, съедается последний 0. то есть 25.80-23.10 выдаёт результат 2,7. А как сделать что бы результат был 2.70
 
return System.Math.Round(Convert.ToDouble(project.Variables["var"].Value.Replace(".",",")), 2);
Как не заменять точку на запятую или почему макрос "JS" не умеет выполнять простейшие математические операции с цифрами в которых есть запятая?
ZvOpu44.png
 
Снимаете галочку с чекбокса Не возвращать значение, и указываете в какую переменную сохранить результат
 
А как округлить 2,1 что бы получилось 3
 
Последнее редактирование:
  • Оценить
Реакции: maxim.gutareff
Искал, но так и не нашел. Число 6,52 к примеру нужно округлить в большую сторону до десятичной, что бы получилось 6,6

Пробовал метод "Ceiling" но он округляет только до целого числа (
 
Искал, но так и не нашел. Число 6,52 к примеру нужно округлить в большую сторону до десятичной, что бы получилось 6,6

Пробовал метод "Ceiling" но он округляет только до целого числа (
умножить на 10, получится 65.2, округлить, получится 66, в конце разделить на 10 обратно, получится 6.6
 
  • Оценить
Реакции: andropovleva

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