как высчитать процент?

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

Lextor

Client
Регистрация
19.06.2020
Сообщения
174
Реакции
20
Баллы
18
доброе утро,
как высчитать процент?

нужно взять из переменной "A" сумму и из переменной B сумму и высчитать процент. Затем положить процент в переменную C.


валюта разная, формат такой:

пример1:
взять из переменной A сумму допустим: $109.33
взять из переменной B сумму допустим: $112.50
положить в переменную C процент: 2,90%

пример2:
взять из переменной A сумму допустим: £0.000000000155
взять из переменной B сумму допустим: £0.000000000203
положить в переменную C процент: 30,97%

пример3:
взять из переменной A сумму допустим: ₩92,019.89
взять из переменной B сумму допустим: ₩92,033.77
положить в переменную C процент: 0,02%

пример4:
взять из переменной A сумму допустим: €10
взять из переменной B сумму допустим: €40
положить в переменную C процент: 300%
 
Последнее редактирование:
Что-то типа такого. Но у меня почему-то результаты отличаются)
C#:
Развернуть Свернуть Копировать
string buy = "$109.33";
string sell = "$112.50";
decimal buy_value = 100 - (Convert.ToDecimal(buy.Replace(",","").Substring(1).Replace(".",",")) / Convert.ToDecimal(sell.Replace(",","").Substring(1).Replace(".",","))) * 100;

return Math.Round(buy_value, 2).ToString() + "%";
 
код:
Развернуть Свернуть Копировать
double PlusPercent(double sum,double percent)
{

    var one_percent = sum / 100;

    return sum + (one_percent * percent);

}

var pr = PlusPercent(100.373, 20);
Console.WriteLine("100.373 + 20%= "+pr);
 
C#:
Развернуть Свернуть Копировать
using System.Globalization;



string buy = "109.33";
string sell = "112.50";

decimal percentage = 
    (
        decimal.Parse("100", CultureInfo.InvariantCulture) /
        decimal.Parse(buy, CultureInfo.InvariantCulture) *
        decimal.Parse(sell, CultureInfo.InvariantCulture)
        
    ) - 100;
return percentage.ToString("#.##");
 
  • Оценить
Реакции: Sho
код:
Развернуть Свернуть Копировать
double PlusPercent(double sum,double percent)
{

    var one_percent = sum / 100;

    return sum + (one_percent * percent);

}

var pr = PlusPercent(100.373, 20);
Console.WriteLine("100.373 + 20%= "+pr);


получаю в переменную [процент]: ok

мне нужно взять сумму из переменной [купил] и сумму из переменной [продал] и получить % в переменную [процент]
 
получаю в переменную [процент]: ok

мне нужно взять сумму из переменной [купил] и сумму из переменной [продал] и получить % в переменную [процент]
этот код для VS, не для зенки
 
получаю в переменную [процент]: ok

мне нужно взять сумму из переменной [купил] и сумму из переменной [продал] и получить % в переменную [процент]

я выше скинул код, который сработает в зенке.
 
этот код для VS, не для зенки

Я наверное не ясно расписал. Мне нужно просто взять из переменной А сумму и из переменной B сумму и получить процент в переменную C. Я сверху редактировал мой вопрос.
 
код:
Развернуть Свернуть Копировать
double PlusPercent(double sum,double percent)
{

    var one_percent = sum / 100;

    return sum + (one_percent * percent);

}

var pr = PlusPercent(100.373, 20);
Console.WriteLine("100.373 + 20%= "+pr);

Называется дорвались к chatgpt, но как работает это все не знаете?)
 
  • Оценить
Реакции: Sho
я выше скинул код, который сработает в зенке.

Я попробовал у меня выходит ошибка. Может я что то не так сделал... и еще я в коде не вижу в какую переменную получаем процент?

Я редактировал свой вопрос, тоесть я сформулировал свой вопрос сверху ясный. Потому как думаю изначально непонятно описал.
 
доброе утро,
как высчитать процент?

нужно взять из переменной "A" сумму и из переменной B сумму и высчитать процент. Затем положить процент в переменную C.


валюта разная, формат такой:

пример1:
взять из переменной A сумму допустим: $109.33
взять из переменной B сумму допустим: $112.50
положить в переменную C процент: 2,90%

пример2:
взять из переменной A сумму допустим: £0.000000000155
взять из переменной B сумму допустим: £0.000000000203
положить в переменную C процент: 30,97%

пример3:
взять из переменной A сумму допустим: ₩92,019.89
взять из переменной B сумму допустим: ₩92,033.77
положить в переменную C процент: 0,02%

пример4:
взять из переменной A сумму допустим: €10
взять из переменной B сумму допустим: €40
положить в переменную C процент: 300%

В Using добавить: using System.Globalization;
105683
C#:
Развернуть Свернуть Копировать
// Переносим в C# переменную число с переменной A и удаляем $, для того, что бы форматировать текст в число.
string buy = project.Variables["A"].Value.Replace("$", "");
// Переносим в C# переменную число с переменной B, для того, что бы форматировать текст в число.
string sell = project.Variables["B"].Value.Replace("$", "");

// Арифметика + перевод в Проценты
decimal percentage =
    (
        decimal.Parse("100", CultureInfo.InvariantCulture) /
        decimal.Parse(buy, CultureInfo.InvariantCulture) *
        decimal.Parse(sell, CultureInfo.InvariantCulture)
     
    ) - 100;

// Запись в Зеннопременную результат с + "%";
project.Variables["C"].Value =  percentage.ToString("0.00") + "%";

// Запись в Лог результат с + "%";
return percentage.ToString("0.00") + "%";

Либо прикрепил готовый результат.
 

Вложения

  • test3.zp
    test3.zp
    9,7 KB · Просмотры: 114
Последнее редактирование:
В Using добавить: using System.Globalization;
C#:
Развернуть Свернуть Копировать
// Переносим в C# переменную число с переменной A и удаляем $, для того, что бы форматировать текст в число.
string buy = project.Variables["A"].Value.Replace("$", "");
// Переносим в C# переменную число с переменной B, для того, что бы форматировать текст в число.
string sell = project.Variables["B"].Value.Replace("$", "");

// Арифметика + перевод в Проценты
decimal percentage =
    (
        decimal.Parse("100", CultureInfo.InvariantCulture) /
        decimal.Parse(buy, CultureInfo.InvariantCulture) *
        decimal.Parse(sell, CultureInfo.InvariantCulture)
    
    ) - 100;

// Запись в Зеннопременную результат с + "%";
project.Variables["C"].Value =  percentage.ToString("0.00") + "%";

// Запись в Лог результат с + "%";
return percentage.ToString("0.00") + "%";

Либо прикрепил готовый результат.

Гениально. Я потрясен от вашего профессионализма. Благодарю, все работает :)

А можно добавить в код эти валюты €, £ чтобы не только $ убирать но и эти валюты. В зависимости что за валюта в переменной лежит. Я попробовал добавить € но так не работает:
105686
 
Гениально. Я потрясен от вашего профессионализма. Благодарю, все работает :-)

А можно добавить в код эти валюты €, £ чтобы не только $ убирать но и эти валюты. В зависимости что за валюта в переменной лежит. Я попробовал добавить € но так не работает:
Посмотреть вложение 105686
C#:
Развернуть Свернуть Копировать
// Переносим в C# переменную число с переменной A и удаляем $, для того, что бы форматировать текст в число.
string buy = project.Variables["A"].Value.Replace("$", "").Replace("€", "").Replace("£", "");
// Переносим в C# переменную число с переменной B, для того, что бы форматировать текст в число.
string sell = project.Variables["B"].Value.Replace("$", "").Replace("€", "").Replace("£", "");

// Арифметика + перевод в Проценты
decimal percentage =
    (
        decimal.Parse("100", CultureInfo.InvariantCulture) /
        decimal.Parse(buy, CultureInfo.InvariantCulture) *
        decimal.Parse(sell, CultureInfo.InvariantCulture)
    
    ) - 100;

// Запись в Зеннопременную результат с + "%";
project.Variables["C"].Value =  percentage.ToString("0.00") + "%";

// Запись в Лог результат с + "%";
return percentage.ToString("0.00") + "%";
 
  • Оценить
Реакции: Lextor
универсальный, который будет работать с любым знаком валюты:

C#:
Развернуть Свернуть Копировать
decimal buy = decimal.Parse(new string(project.Variables["A"].Value.Where(x => char.IsDigit(x) || x == ',' || x == '.').ToArray()), System.Globalization.CultureInfo.InvariantCulture);
decimal sell = decimal.Parse(new string(project.Variables["B"].Value.Where(x => char.IsDigit(x) || x == ',' || x == '.').ToArray()), System.Globalization.CultureInfo.InvariantCulture);
project.Variables["C"].Value = $"{(sell / buy - 1) * 100:0.00}%";
 
  • Оценить
Реакции: Sho

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