2015-10-24 3 views
1

В Python использование квадратного корня отрицательного числа вызывает исключение. В PowerShell он возвращает NaN.NaN или исключение?

Почему разница? Я считаю, что согласно IEEE 754, поведение PowerShell является правильным. Это так? По крайней мере, такова идея, которую я получил от the article.

И я считаю, что деление на ноль должно также производить NaN, но оба варианта Python и PowerShell в этом случае исключают.

+1

разные языки ведут себя по-другому? – redFIVE

+0

Но не должны ли они соответствовать одному стандарту, а именно IEEE 754, для арифметики? – mcu

+0

Осторожно с разделением в PowerShell/.NET. Целочисленное деление на ноль бросает, но двойное деление возвращает +/- бесконечность для +/- 1.0/0.0 и NaN для 0.0/0.0. Я считаю, что это несколько нормально. Стандарт IEEE 754 предназначен для арифметики с плавающей точкой, а не целочисленной арифметики. –

ответ

0

Частичный ответ на вопрос-

https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

Как вы можете видеть, деление на ноль не всегда дают NaN. Исключения, с другой стороны, возможно генерируются как infinity, возможно, не были определены как специальное количество как в Python, так и в PowerShell.

Обратите внимание на специальных quantity-

Без каких-либо особого количеств, не существует хороший способ справиться с исключительными ситуациями, как извлекая квадратный корень из отрицательного числа, кроме прерывания вычислений.

(Источник:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)

Отhttps://stackoverflow.com/a/26870777/3681882-
Очевидно, что для PowerShell, не бесконечности значения для любого из целочисленных типов не существует.

+0

Как PowerShell, так и Python, похоже, определены как Infinity, так и NaN. – mcu

+0

Прочтите это http://stackoverflow.com/a/26870777/3681882 – CrakC

+0

@ coding4fun Я считаю, что существует разница между определением 'бесконечности' и возвратом' бесконечности', хотя для этого нужно сделать больше исследований. Вы нашли официальную документацию для Python или PowerShell, которая утверждает строгую приверженность IEEE 754 ?? – CrakC

Смежные вопросы