Problem bei einer if Bedingung
-
Hallo,
ich habe ein kleines Problem mit einer if Bedingung und hoffe das mir jemand einen kleinen Denkanstoss gibt

Habe ein kleines Programm das mit Integer Werten arbeitet. Nun möchte ich aber am Ende des Programms prüfen ob eine ganze Zahl durch eine andere ganze Zahl ,5 wird (-Platzhalter, da kann stehen was will). Mir fällt jetzt nur die Umwandlung in einen anderen Datentyp ein und deshalb wollte ich mal fragen ob es auch ohne Umwandlung möglich ist.
PS: Bin noch ein kleiner C++ Anfänger

-
Wie wär's mit sowas?
int n1, n2; ... if( n1*10 / n2 == *5 ) // den zweiten * mußt Du durch den gewünschten Wert ersetzen ...;Denke aber daran, daß wegen Rundung unter Umständen nicht das gewünschte Ergebnis geliefert wird, daher ist evt. eine Konvertierung nach double sinnvoller.
mfg Martin
-
Man könnte das zwar sicherlich auch intelligenter machen, aber das hier ist simpel zu verstehen: Multipliziere die erste Zahl vorher mit 10 und guck hinterher ob das Ergebnis durch 5 teilbar ist.
if ((val1*10/ val2) % 5 == 0) // ...
-
@SeppJ: Falsch, da 1. eine Integer Division Auftritt (10*100/99=10) und zweitens auch Zahlen mit einer 0 am Schluss durch 5 teilbar sind (10%5=0).
Meine Lösung:
// keine Nachkommastellen bei *2 // \ Resultat *2 berechnen (exakt) // \ / v .5 abschneiden,*2 und .5 hinzufügen if ((2*val1)%val2==0&&(2*val1)/val2==2*(val1/val2)+1) //...therino, der int hero