-msse2付きでコンパイルしても、不正確になってしまうケースがありました。 int main(void) { double d = 32.55; int n = d * 100; printf("%d\n", n); return 0; } あとは、512.55, 513.55とか、8192.55, 8193.55とか。(これ以外にもかなり多い) SSE2を使ったところで完全ではないようだし、なんだか不毛な感じもしてきた。 3.55については、たまたまSSE2で上手く計算できたケース、ということかな、と。