IEEE 754 определяет 1 ^ n как 1, независимо от n. (Я не плачу 106 долларов, чтобы подтвердить это для себя, но в этой статье для этого утверждения цитируется страница 44 стандарта 2008 года.) Большинство языков программирования, похоже, следуют этому рецепту: Python, C, C#, PHP, Go и Rust. вернуть 1 для 1 ^ NaN. Однако и Java, и Javascript возвращают NaN.
- Почему IEEE 754 создает это исключение из общего правила распространения NaN?
- Почему Java и Javascript не соответствуют стандарту?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... violate-th