Modulo falsch Berechnung?
-
int64_t time_in_milliseconds = (int64_t) (1001.0 / 24000.0 * 47.952 * 1000); //muss sein 2000 ist aber 1999
also so gehts nicht, weil das "47.952" 2sekunden bzw. 2000ms sind
da bleib ich doch liebers bei meiner Variante.
-
@Finnegan Ich hab da auch noch ein
round
vergessen@Gestalt sagte in Modulo falsch Berechnung?:
Es gibt Ausnahmen die sind aber wirklich selten.
Na ja, irgendwie kaufe ich dir die Unschuldslammnummer auch nicht so ganz ab.
-
@noLust naja ich weiß nicht nicht wie ich sagen soll aber ich bin nicht wie ihr, ich hab mit dem allem was sich da als Menschen bezeichnen nix gemeinsames, und das ist auch gut so.
-
int64_t time_in_milliseconds = (int64_t) round((1001.0 / 24000.0 * 47.952 * 1000)); //muss sein 2000 if(time_in_milliseconds == 2000) cout << "it's true" <<endl;
-
Sag ich doch auch ... ich bin der beste.
-
@noLust nicht schlecht
-
Aber sogar ich musste gerade googeln, ob man das groß- bzw. kleinschreibt ...
Ich bin der Beste - ist richtig. Der Duden drückt sich da aber widersprüchlich aus, so ist:
- dieser Wein ist der beste
- er ist der Beste in der Klasse
beides richtig. Ich möchte gar nicht wissen, wer das wieder verbockt hat.
Edit: Na klar, Ersteres bezieht sich nur auf alle Weine - aber man möchte ja ausdrücken, dass man absolut der Beste ist, also ohne eine Einschränkung der Menge.
-
@noLust aber ich muss Dich da enttäuschen ist wahrscheinlich falsch gerundet denn
int64_t time_in_milliseconds = (int64_t) round((1001.0 / 24000.0 * 47.951* 1000)); //muss sein 1999 ist aber 2000
-
-
@Gestalt Schau hier mal nach: https://en.cppreference.com/w/cpp/numeric/math/floor
-
int64_t time_in_milliseconds = (int64_t) std::floor( ((1001.0 / 24000.0 * 47.951 * 1000)) + 0.01); muss sein 1999 int64_t time_in_milliseconds = (int64_t) std::floor( ((1001.0 / 24000.0 * 47.952 * 1000)) + 0.01); muss sein 2000
geht ob es aber zuverlässig läuft keine Ahnung, vermutlich nicht habs mal im ms-Bereich getestet da gehts dann nicht, die Rundung ist zu scharf.
-
Nochmals zum Abschluss bester Code
double maxtime; double frames=130908.936024; //01:30:59.999 maxtime = frames / aFramesPerSec * 1000; //aFramesPerSec=23.976 maxtime = std::floor(maxtime + 0.00001);
oder eben auch so, da ja eine Ganz-Zahl zurückgegeben wird
double frames=130908.936024; //01:30:59.999 int64_t time_in_milliseconds = std::floor((frames / default_aFramesPerSec * 1000)+0.00001); //aFramesPerSec=23.976
-
@Gestalt sagte in Modulo falsch Berechnung?:
Ich finde das nicht gut das man nach dem Sinn gefragt wird nur weil ich Dinge mache die eine anderer nicht macht und er deshalb darin keinen Sinn sieht.
lol
und tschüss
-
@hustbaer sagte in Modulo falsch Berechnung?:
lol
und tschüssGeh doch nicht so hart mit ihm ins Gericht, wir waren doch alle mal jung und unwissend ...
-
@noLust Es geht nicht um unwissend, sonder um "mimimi, ich armes Opfer" kombiniert mit "ich weiss schon was ich tue, danke". Die Scheisse brauch ich nicht. Und um zu versuchen ihm das pädagogisch wertvoll beizubringen ist mir meine Zeit zu schade.
-
@hustbaer Bitte keine Kraftwörter verwenden. Danke.
-
@noLust Soll ich auch dich blocken?
-
@hustbaer sagte in Modulo falsch Berechnung?:
blocken?
Weshalb denn? Was habe ich Falsches getan?
Ein annehmbarer Ton sollte für alle förderlicher sein.
Der TE, also @Gestalt, hat doch bloß eine ganz normale Frage + eine (oder mehrere) widerspenstige Rückfrage gestellt. Gar kein Grund, um jemanden übers Maul zu fahren. (Siehst du, das färbt schon ab...)