Мне нужно иметь возможность редактировать значения веса, которые являются целыми числами по процентам.Массы и проценты
Например: я получил следующие веса:
Var Weight x 100 y 50 z 50 So z is 25% ,y is 25% and x is 50%
Теперь, если я хочу, чтобы иметь возможность изменить существующий вес или добавить новый вес процент ввода, как я могу убедиться, что вес все равно будут целыми типами и что я не буду иметь округления.
Например, если я хочу добавить новый вес, который будет составлять 25% от общего веса, как я могу рассчитать это? Обратите внимание, что я могу изменить другие веса (приращение/декремент), чтобы достичь этого.
Но необходимое условие здесь должно состоять в том, что веса будут оставаться целыми, а процент новых/правых весов будет соответствовать запрошенным.
Если у меня не было, чтобы убедиться, что вес будет целыми числами, то это было легко, я могу просто использовать следующее уравнение:
NewWeight = (Сумма * RequestedPerecentage)/(1-RequestedPerecentage)
но это не так ...
Вы можете отображать значения в укороченной форме, но сохранять значения в коде как float, просто присваивать значение int при отображении такого значения в C#: 'var xValue = (int) x;' –
Да, но с этот подход в конечном итоге я потеряю точность ... –
«Обратите внимание, что я могу изменить другие веса для достижения этого». Есть ли какие-либо особые ограничения на то, как вы можете изменить вес? Если нет, проблема проста. Если вы пытаетесь добавить вес X% в список, уменьшите все веса, но первый на 0, а также увеличите/уменьшите первый вес до (100-X). Взяв ваш первый пример, результат: x = 75, y = 0, z = 0, new_value = 25. – Kevin