3
かなりの記事では、float-> integerを素早く変換するための命令をfistp
で使用することをお勧めします。これはCPUの現在の丸めモードに依存するため、設定する必要があります。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
私は答えがノーだと思います。浮動小数点モードは、コンテキストスイッチを介して保存する必要がある多くの要素の1つです。 – Mysticial