Как увеличить счетчик на 0.1

leva001

Client
Регистрация
26.07.2015
Сообщения
281
Благодарностей
47
Баллы
28
Вопрос в названии темы. Стандартным кубиком не работает, там только целые числа. Пробовал через JS, типо {-Variable.N-}+0.1 но на след увеличениях добавляется не 0.1, а 0.09999999999 и надо делать округление... Как бы вариант рабочий, но может есть способ попроще?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 447
Благодарностей
8 678
Баллы
113
Вопрос в названии темы. Стандартным кубиком не работает, там только целые числа. Пробовал через JS, типо {-Variable.N-}+0.1 но на след увеличениях добавляется не 0.1, а 0.09999999999 и надо делать округление... Как бы вариант рабочий, но может есть способ попроще?
Можно использовать стандартный кубик для счетчика "Обработка переменных" (увеличить/уменьшить) и потом делить на 10, напрмиер с помощью JS-кубика: {-Variable.counter-}/10

63514


63513
 
  • Спасибо
Реакции: djaga и leva001

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 398
Баллы
113
Вопрос в названии темы. Стандартным кубиком не работает, там только целые числа. Пробовал через JS, типо {-Variable.N-}+0.1 но на след увеличениях добавляется не 0.1, а 0.09999999999 и надо делать округление... Как бы вариант рабочий, но может есть способ попроще?
Проблемы с округлением нет при использовании типа данных decimal.
В Зеннопостере все переменные в строковом виде, а счётчики стандартных кубиков преобразуют значение в int ( поправьте, если ошибаюсь).
Из-за чего, поставленную задачу можно решить либо через JS либо через C#.

На JS предоставили пример выше, а я предоставлю пример C# кода, который реализует нужный счётчик:
Код:
string line = "0,1"; // Сюда подадим что нужно - например с переменной
decimal d = decimal.Parse(line);
d+=0.1m; // Увеличиваем на 0.1;

// Цикл ниже демонстрирует работу в логе - удалить
for(int i=0;i<1000;i++) {
    d+=0.1m;
    project.SendInfoToLog(d.ToString("N",System.Globalization.CultureInfo.GetCultureInfo("ru")));
}
// до этого момента удаляем

// Возвращаем значение в виде 100,20 (с запятой)
line = d.ToString("N",System.Globalization.CultureInfo.GetCultureInfo("ru"));
return line;
 
  • Спасибо
Реакции: Alexmd, one и leva001

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