Посчитать % при разных числах

161
22 октября 2018, 20:00

Есть такой код:

double value = Convert.ToDouble(s);
double onePercent = value / 100;
value = value + onePercent * 10;
return value.ToString();

value = value + 10%

Как сделать так, чтобы в зависимости от числа, добавлялся уникальный %?

Например:

200 + 30%
600 + 25%
1000 + 20%
1400 + 15%
2000 + 10%

То есть хотелось бы, чтобы результатом исполнения было не value = value + 10%, a value = value + n%!

n = процент, в зависимости от числа value (пример выше)

Answer 1

Пожалуйста, в зависимости от суммы числа:

if (value == 200)
  value = value + onePercent * 30;
else if (value == 600)
  value = value + onePercent * 25;
else if (value == 1000)
  value = value + onePercent * 20;
else if (value == 1400)
  value = value + onePercent * 15;
else if (value == 2000)
  value = value + onePercent * 10;
Answer 2

Ваш вопрос не слишком ясен: Вы не описали, как зависит процент от значения value!
Пришлось догадываться и выводить формулу на основе Ваших примеров самостоятельно)

Функция получилась следующей:

// Получим число + некий процент от него
private static double GetValue(double Value) => 
    Value < 0 ? 
        // Число не может быть меньше нуля (у Вас это некая сумма, как я понял)
        throw new ArgumentException() : 
        // Если число меньше порога, когда процент начинает становиться отрицательным
        Value < 2800 ? 
            // Добавить процент
            (Value + (30.0 - (int)(Value - 1) / 400 * 5) / 100 * Value) : 
            // Вернуть число без начислений
            Value;

Пример работы:

Console.WriteLine(GetValue(200));  // 260  == 200  + 200  * 0.30
Console.WriteLine(GetValue(600));  // 750  == 600  + 600  * 0.25
Console.WriteLine(GetValue(1000)); // 1200 == 1000 + 1000 * 0.20  
Console.WriteLine(GetValue(1400)); // 1610 == 1400 + 1400 * 0.15
Console.WriteLine(GetValue(2000)); // 2200 == 2000 + 2000 * 0.10

Надеюсь, мое решение помогло Вам, если же нет - детальнее опишите проблему!

READ ALSO
Красные галки возле классов и проекта в Visual Studio

Красные галки возле классов и проекта в Visual Studio

Создаю игру в unityПишу скрипты в Visual Studio 2017

151
C# WPF Button.Click дополнительная информация

C# WPF Button.Click дополнительная информация

Как мне передать некую дополнительную информацию, когда происходит событие клика на кнопку? К примеру, существует ListBox, который выводит информацию...

203
Почему в C# такой неудобный enum?

Почему в C# такой неудобный enum?

Есть ли возможность использовать шарповый энум как в плюсах? Вот что я имею ввиду:

164