Knoten im Hirn: Vielfaches bestimmen

22/02/2010 - 10:59 von Curtis Newton | Report spam
Hallo,
ich habe irgendwie einen Knoten im Hirn. Was will ich: Überprüfen, ob
diu Differenz zweier Werte ein positives oder negatives Vielfaches von
50 ist. Dabei sind die Werte nicht beliebig, sondern immer in einen
gewissen Abstand. Also so um 50 rum, dann um ca 66.6.

So mache ich es bisher:

// die beiden Werte
double diff=fabs(data1-data2);

double teiler=diff/50.;

while(teiler>0.51) teiler--;
teiler=fabs(teiler);

if(teiler>0.2)
{
Tu_Was();
}

Hàsslich. Das geht doch bestimmt eleganter, oder?

Bye
 

Lesen sie die antworten

#1 Marcel Müller
22/02/2010 - 12:23 | Warnen spam
Hallo,

Curtis Newton wrote:
Hallo,
ich habe irgendwie einen Knoten im Hirn. Was will ich: Überprüfen, ob
diu Differenz zweier Werte ein positives oder negatives Vielfaches von
50 ist. Dabei sind die Werte nicht beliebig, sondern immer in einen
gewissen Abstand. Also so um 50 rum, dann um ca 66.6.

So mache ich es bisher:

// die beiden Werte
double diff=fabs(data1-data2);



Sind data1 und data2 double?
Wenn ja, werden sie sowieso fast nie genau um 50 differieren. Du brauht
dann ein Intervall epsilon, innerhalb dessen die Differenz als
Vielfaches von 50 Akzeptiert wird.

int IstVielfachesVon50(double wert, double epsilon)
{ return fmod(fabs(wert)+epsilon, 50.) <= 2*epsilon;
}

Marcel

Ähnliche fragen