C++ のプログラムを Java に移植していてハマった罠.下の2つのプログラムは異なる値を出力する.
#include <iostream> int main(int argc, char *argv[]) { std::cout << (std::min(1.0, 0.0/0)); return 0; }
import java.io.*; import java.util.*; class test { public static void main(String [] args) throws Exception { System.out.println(Math.min(1.0, 0.0/0)); } }
C++ だと min(x, NaN) == x っぽく,他方,Java だと min(x, NaN) == NaN っぽい.
- Newer: ことはじめ