Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.12.36.30] |
|
Страницы: (5) « Первая ... 3 4 [5] все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Цитата Bug Hunter @ Похоже я понял - это соревнование по чтению форума жопой за пост председателя клуба читателей форума жопой. Тебя это так задело? Бедняжка. Как же плохо быть тобой |
Сообщ.
#62
,
|
|
|
Цитата OpenGL @ Лично я считаю, что как в питоне или, прости господи, в паскале - всегда обычное, а для целочисленного надо использовать другой оператор - гораздо логичнее. А какой тип возвращает в питоне функция взятия корня второй степени? |
Сообщ.
#63
,
|
|
|
math.sqrt принимает вещественное число в качестве аргумента и возвращает вещественное число как результат.
cmath.sqrt принимает комплексное число в качестве аргумента и возвращает комплексное в качестве результата. Куда интереснее ведут себя функция pow (с двумя аргументами) и операция **, которые могут возвращать в качестве результата и целое, и вещественное, и комплексное числа, в зависимости от того, что получается. Добавлено Это в Python 3. Но похоже и в предыдущем так же было. |
Сообщ.
#64
,
|
|
|
Цитата amk @ math.sqrt принимает вещественное число в качестве аргумента и возвращает вещественное число как результат. cmath.sqrt принимает комплексное число в качестве аргумента и возвращает комплексное в качестве результата. А деление, значит, принимает целые, но возвращает вещественные |
Сообщ.
#65
,
|
|
|
Цитата MyNameIsIgor @ Ну, в sqrt тоже можно передать целое, он всё равно вернёт вещественное. А деление, значит, принимает целые, но возвращает вещественные |
Сообщ.
#66
,
|
|
|
Цитата amk @ Цитата MyNameIsIgor @ Ну, в sqrt тоже можно передать целое, он всё равно вернёт вещественное.А деление, значит, принимает целые, но возвращает вещественные А почему не комплексное? |
Сообщ.
#67
,
|
|
|
Потому что решили, что math.sqrt должен, как и в других языках, возвращать вещественное.
|
Сообщ.
#68
,
|
|
|
Проголосовал за №2 потому, что считаю, что чем ближе к записи в математике, тем правильнее. В математике "/" означает "разделить", "1/2" в математике будет равно "0.5", и тут не может быть вариантов. А целочисленное деление - это отражение конструкции реального процессора, это может быть полезно с точки зрения оптимизации, но это не математическое деление, даже если брать деление для первоклашек, которые ещё дробей не знают, то там деление целых чисел возвращает ДВА результата - частное и остаток.
И ещё, вариант №1 плохо стыкуется с неопределённым типом данных (Variant). |
Сообщ.
#69
,
|
|
|
Цитата Mikle @ И ещё, вариант №1 плохо стыкуется с неопределённым типом данных (Variant). А что, неопределенный тип данных (Variant) еще и делить можно? Мне казалось для начала в таких случаях необходимо сделать преобразование типа. |
Сообщ.
#70
,
|
|
|
Я отвечал, прочитав только первую страницу (попадаюсь иногда на это, кажется, что вижу последний пост). Во многом повторился.
Цитата KILLER @ А что, неопределенный тип данных (Variant) еще и делить можно? А о каком ЯП речь? Тема, вроже как, про ЯП вообще, вот так я и отвечал. А делить Variant - можно, если речь про VB. |
Сообщ.
#71
,
|
|
|
Цитата Mikle @ А делить Variant - можно, если речь про VB. И что получится в результате, если например в вариант запихали BSTR строку, и поделили это на 3 ? |
Сообщ.
#72
,
|
|
|
Цитата KILLER @ И что получится в результате, если например в вариант запихали BSTR строку, и поделили это на 3 ? Создаёшь текстовый документ с таким содержимым: dim a,b a="345" b=3 msgbox a/b Переименовываешь его в test.vbs. Сохраняешь... запускаешь... ответ 115! |
Сообщ.
#73
,
|
|
|
Цитата Mikle @ Переименовываешь его в test.vbs. Сохраняешь... запускаешь... ответ 115! Так я не то имел ввиду. Но спасибо за код. Немного подправил: dim a,b a="_34a5" b=3 msgbox a/b Получил исключение, как и ожидалось. Т.е. фраза: Цитата Mikle @ И ещё, вариант №1 плохо стыкуется с неопределённым типом данных (Variant) Лишена смысла. Так как такие типы как Variant делить без приведения типа слишком опасно. Мы же не знаем что он там будет хранить. |
Сообщ.
#74
,
|
|
|
Цитата KILLER @ такие типы как Variant делить без приведения типа слишком опасно. В общем согласен, по крайней мере в применении к VB. Тут Variant может содержать даже не строку, а вообще объект. Но это, скорее, чересчур вольное приведение типов в VB, в противовес к чересчур жёсткому контролю в том же шарпе. Скажем так, не Variant, а некий "Number", то есть неопределённый тип, но только для чисел, вообще мог бы вполне существовать. А в бейсике, по крайней мере для строк, если уж приводить их тип автоматически к числовому, можно было сделать логичнее - чтобы приведение работало аналогично функции Val(), для всех строк, не интерпретируемых как число, возвращать 0. Сообщения были разделены в тему "Spam" |