정수 유형 인 가중치를 백분율로 편집 할 수 있어야합니다. 예를 들어가중치 및 백분율
: 나는 다음과 같은 무게를 가지고 : 지금은 기존의 무게를 편집 또는 비율 입력에 의해 새로운 무게를 추가 할 수 있도록하려면
Var Weight x 100 y 50 z 50 So z is 25% ,y is 25% and x is 50%
을, 어떻게 가중치가 있는지 확인 할 수 있습니다 여전히 정수형이 될 것이고 나는 반올림이 필요하지 않을 것입니다.
예를 들어 총 가중치에서 25 %가되는 새 가중치를 추가하려면 어떻게 계산합니까? 이를 달성하기 위해 다른 가중치 (증가/감소)를 변경할 수 있습니다.
그러나 여기에서 필요한 조건은 가중치가 정수로 유지되고 새/편집 가중치의 백분율이 요청되는 것입니다.
NewWeight = (합계 * RequestedPerecentage)/(1-RequestedPerecentage)
: 나는 가중치가 쉽게 한 후 정수있을 것입니다 있는지 확인하지 않은 경우, 방금 다음 식을 사용할 수 있습니다
하지만 그럴 ...
값을 잘린 형태로 표시 할 수 있지만 코드의 값을 수레로 잡고 값을 int로 캐스팅하면 C#에 값이 표시됩니다. 'var xValue = (int) x;' –
예 이 접근 방식은 결국 정밀도를 잃게 될 것입니다 ... –
"이것을 달성하기 위해 다른 가중치를 변경할 수 있음을 공지합니다". 무게를 어떻게 바꿀 수 있는지에 대한 특별한 제약이 있습니까? 그렇지 않다면 문제는 쉽습니다. 목록에 X %의 가중치를 추가하려는 경우 모든 가중치를 감소시키고 처음에 0을 0으로하고 첫 번째 가중치를 (100-X)로 증가/감소시킵니다. 첫 번째 예를 들자면 결과는 x = 75, y = 0, z = 0, new_value = 25입니다. – Kevin