基本的な質問ですが、コードは非常に大きいですが、私の問題は、基本的には基本的なものです。
変数と呼ばれるdouble値があり、cout << variableでチェックすると、たとえば982になります。
コードの次の行はintintvariable=variableです。
次に、cout << intvariableでチェックすると、981が与えられます。
面白いことに、これは常に発生するとは限りません。985では985のままかもしれませんが、984と983では、983と982が返されます。これはまったく理解できないようです。私はそれをfloatに変換してからintに変換するか、別のdoubleに変換してからintに変換してみました。
モジュラス演算子を使用できるように、intとして必要です。
以前のコードでは、doubleは1未満(つまり0.987)であり、次に小数点以下の桁数を掛けて実数の正の整数にします(ただし、それでもdoubleとして格納されます)点)。多分それはランダムな丸めと関係がありますか?