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

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
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%
 
Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Что-то типа такого. Но у меня почему-то результаты отличаются)
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() + "%";
 

lavachik

Client
Регистрация
18.09.2020
Сообщения
52
Благодарностей
19
Баллы
8
код:
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);
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 237
Благодарностей
573
Баллы
113
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

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
код:
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

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

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113
получаю в переменную [процент]: ok

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

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 237
Благодарностей
573
Баллы
113
получаю в переменную [процент]: ok

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

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
этот код для VS, не для зенки
Я наверное не ясно расписал. Мне нужно просто взять из переменной А сумму и из переменной B сумму и получить процент в переменную C. Я сверху редактировал мой вопрос.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
код:
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

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
я выше скинул код, который сработает в зенке.
Я попробовал у меня выходит ошибка. Может я что то не так сделал... и еще я в коде не вижу в какую переменную получаем процент?

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

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
доброе утро,
как высчитать процент?

нужно взять из переменной "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") + "%";
Либо прикрепил готовый результат.
 

Вложения

  • 9,7 КБ Просмотры: 49
Последнее редактирование:

Lextor

Client
Регистрация
19.06.2020
Сообщения
172
Благодарностей
19
Баллы
18
В 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
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Гениально. Я потрясен от вашего профессионализма. Благодарю, все работает :-)

А можно добавить в код эти валюты €, £ чтобы не только $ убирать но и эти валюты. В зависимости что за валюта в переменной лежит. Я попробовал добавить € но так не работает:
Посмотреть вложение 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

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
универсальный, который будет работать с любым знаком валюты:

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

lavachik

Client
Регистрация
18.09.2020
Сообщения
52
Благодарностей
19
Баллы
8

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113

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