これは避けるべきだと思いますが、残念ながら、混合計算では整数と浮動小数点(double)を使用する必要があります。タイトルにはすでに質問が記載されています。オーバーフローがない限り、次のコードは数値に関係なくすべてのc ++浮動小数点実装で機能する(アサートなし)ことが保証されていますか?
編集:値が常に正であることを言及するのを忘れました
double realSplit = seg.squareLength() / sqr(maxLength);
int split = realSplit;
assert(realSplit-split >= 0.0);