基本问题,代码很大,但我的问题是,核心是基本的:
我有一个称为变量的双精度值,如果我用 cout << 变量检查它,它会给我,例如,982。
下一行代码是 int intvariable = variable。
然后,当我用 cout << intvariable 检查它时,我得到了 981。
有趣的是,这并不总是发生。使用 985,它可能会保持在 985,但随后在 984 和 983,它将返回 983 和 982。我似乎根本无法弄清楚这一点。我尝试将其转换为浮点数,然后转换为 int,或者转换为另一个 double,然后再转换为 int。
我需要它作为一个整数,所以我可以使用它的模运算符。
我应该指出,之前在代码中双精度小于 1(即 0.987),然后乘以小数位数使其成为实数正整数(尽管它仍以双精度形式存储)观点)。也许这与随机四舍五入有关?