かなりの数の記事で、fistp
float->integer を高速に変換するための命令を使用することを提案しています。これは、CPU の現在の丸めモードに依存するため、設定する必要があります。
しかし、この丸めモードは、プログラムの実行中に他のプログラムによって変更される可能性がありますか? OSによる?
さらに悪いことに、これは可能なシナリオ (疑似コード) ですか?
set_rounding_mode(ROUND_TRUNCATE);
/* process gets switched out and other process sets the rounding mode to round */
int x = round_with_fistp(0.6);
printf("%d\n", x); // prints 1