문제

나는 내 이미지가 올바르게 표시되도록 무언가를 쓰려고 노력하고 있습니다. "Breedteplaatje"와 "Hoogteplaatje"가 2 개 있습니다. "800"과 "500"나는 "Verh"가 (500 / 800) = 0,625로 돌아 오는 값으로 2 개의 VAR을로드하면. verh = 0의 값 ..

이것은 코드입니다.

int breedtePlaatje = Convert.ToInt32(imagefield.Width);
int hoogtePlaatje = Convert.ToInt32(imagefield.Height);

//Uitgaan van breedte plaatje
if (breedtePlaatje > hoogtePlaatje)
{
    double verH = (hoogtePlaatje/breedtePlaatje);
    int vHeight = Convert.ToInt32(verH * 239);

    mOptsMedium.Height = vHeight;
    mOptsMedium.Width = 239;

    //Hij wordt te klein en je krijgt randen te zien, dus plaatje zelf instellen
    if (hoogtePlaatje < 179)
    {
        mOptsMedium.Height = 179;
        mOptsMedium.Width = 239;
    }
}

내 접근 방식에 관한 모든 팁은 사랑스러운 일입니다.

도움이 되었습니까?

해결책

int로 int를 나누는 것은 int를 제공합니다.

double verH = (hoogtePlaatje/breedtePlaatje);

과제의 오른쪽은 정수 값입니다.

Breedteplaatje 및/또는 Hoogteplaatje를 두 배로 변경하면 기대하는 답변을 얻을 수 있습니다.

다른 팁

정수 부서는 사단 결과로 정수가 반환됩니다.

결과가 플로트가 되려면 부서의 매개 변수 중 하나가 플로트가 필요합니다. 당신은 그들 중 하나를 플로트에 캐스팅하여 이것을 할 수 있습니다.

double verH = (double)hoogtePlaatje/breedtePlaatje;

또는

double verH = hoogtePlaatje/(double)breedtePlaatje;

보다 C# 사양 부서에 관해.

두 정수를 나누면 C#이 사용됩니다 정수 부서, 분수 부분이 폐기되는 곳. 귀하의 경우에는 다음과 같습니다.

500 / 800 = 0 + 5/8 

분수 부분을 폐기하면 다음과 같은 점이 있습니다.

500 / 800 = 0

떠 다니는 포인트 부문을 얻으려면 논쟁 중 하나를 어느쪽에 주소 double, float 또는 decimal 필요한 정밀도 수준에 따라 다른 인수가 동일한 유형으로 암시 적으로 변환되고 구분은 정수 규칙 대신 부동 소수점 규칙을 사용하여 수행됩니다.

double result = (double)breedtePlaatje  / hoogtePlaatje ;

나는 c#을 사용한 적이 없지만 아마도 변수 중 하나를 다음과 같이 두 배로 던져야 할 것입니다.

double verH = (double)hoogtePlaatje/breedtePlaatje;

이 시도:

double verH = double (hoogtePlaatje) / breedtePlaateje;

int를 int로 나누면 잘린 답변이 나타납니다. 그들 중 하나를 두 배로 늘리면 전체 부서는 두 배로 이루어집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top